Intereting Posts
Обеспечьте безопасную аутентификацию Facebook с помощью моего сервера SurfaceTexture.OnFrameAvailableListener перестает быть вызванным Попытка mockito издеваться над любым классом генерирует ExceptionInInitializerError Как показать часть изображения на экране в конце анимации Служба Android никогда не запускается – onStartCommand () не вызывается Android получить ширину фрагмента Не удалось выполнить компиляцию под Android Studio 3.0 Canary 1 Биллинг в приложении: «Элементы запроса, доступные для покупки», возвращает 0 пунктов AdMob no fill – Не удалось создать медиа-адаптер: com.google.DummyAdapter Как определить, воспроизводится ли VideoView видео или буферизация? Сжатие изображений, таких как Whatsapp и другие мессенджеры на Android Webcal / .ics подписываются на канал из приложения Android Эмулятор Android Studio не поставляется с Play Store для API 23 Могу ли я встроить пользовательский шрифт в приложение для Android? Ошибка эмулятора Android: std :: bad_alloc

Пользовательский тост в android: простой пример

Я новичок в программировании на Android. Может ли кто-нибудь дать мне простой пример, показывающий пользовательское уведомление для тостов в Android?

Solutions Collecting From Web of "Пользовательский тост в android: простой пример"

Используйте ниже код пользовательского тоста, он может вам помочь.

toast.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:background="#DAAA" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="10dp" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFF" /> </LinearLayout> 

MainActivity.java

 LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); ImageView image = (ImageView) layout.findViewById(R.id.image); image.setImageResource(R.drawable.android); TextView text = (TextView) layout.findViewById(R.id.text); text.setText("Hello! This is a custom toast!"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); 

И проверьте ниже ссылки также для Custom Toast

Пользовательский тост с аналоговыми часами

Я понимаю, что этот вопрос слишком велик, чтобы отвечать, Но все же я думаю, что это стоит того, чтобы разделить, поскольку это уменьшит количество кода для создания тоста.

Тост предназначен для отображения сообщений на короткий промежуток времени; Итак, согласно моему пониманию, вы хотели бы настроить его, добавив в него изображение и изменив размер, цвет текста сообщения. Если это все, вы хотите сделать, тогда вам не нужно делать отдельный макет и раздувать его до экземпляра Toast. Представление Toast по умолчанию содержит TextView для отображения сообщений на нем. Итак, если у нас есть ссылка на идентификатор ресурса этого TextView , мы можем играть с ним. Итак, вот что вы можете сделать для достижения этого:

  Toast toast = Toast.makeText(this, "I am custom Toast!", Toast.LENGTH_LONG); View toastView = toast.getView(); //This'll return the default View of the Toast. /* And now you can get the TextView of the default View of the Toast. */ TextView toastMessage = (TextView) toastView.findViewById(android.R.id.message); toastMessage.setTextSize(25); toastMessage.setTextColor(Color.RED); toastMessage.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_fly, 0, 0, 0); toastMessage.setGravity(Gravity.CENTER); toastMessage.setCompoundDrawablePadding(16); toastView.setBackgroundColor(Color.CYAN); toast.show(); 

В приведенном выше коде вы можете добавить изображение в TextView через setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom) зависимости от позиции относительно TextView, которую вы хотите.

Вывод:

Введите описание изображения здесь

ШАГ 1:

Сначала создайте макет для пользовательского тоста в res / layout / custom_toast.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/custom_toast_layout_id" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFF" android:orientation="horizontal" android:padding="5dp" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#000" /> </LinearLayout> 

ШАГ 2: В коде действия вы получите пользовательский вид и присоедините к Toast:

 // get your custom_toast.xml ayout LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast_layout_id)); // set a message TextView text = (TextView) layout.findViewById(R.id.text); text.setText("Button is clicked!"); // Toast... Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); 

Для получения дополнительной информации см., Как мы создаем пользовательский Toast в Android:

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

См. Ссылку здесь

Вы найдете свое решение

и попробовать

Создание пользовательского представления тоста

Если простого текстового сообщения недостаточно, вы можете создать индивидуальный макет для вашего тоста-уведомления. Чтобы создать пользовательский макет, определите макет вида в XML или код приложения и передайте корневой объект View в метод setView (View).

Например, вы можете создать макет для тоста, видимый на скриншоте справа, со следующим XML (сохраненным как toast_layout.xml):

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:background="#DAAA" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="10dp" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFF" /> </LinearLayout> 

Обратите внимание, что идентификатор элемента LinearLayout является «toast_layout». Вы должны использовать этот идентификатор для раздувания макета из XML, как показано здесь:

  LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); ImageView image = (ImageView) layout.findViewById(R.id.image); image.setImageResource(R.drawable.android); TextView text = (TextView) layout.findViewById(R.id.text); text.setText("Hello! This is a custom toast!"); Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); 

Сначала извлеките LayoutInflater с помощью getLayoutInflater () (или getSystemService ()), а затем раздуйте макет из XML с помощью inflate (int, ViewGroup). Первым параметром является идентификатор ресурса макета, а второй – корневой вид. Вы можете использовать этот раздутый макет, чтобы найти больше объектов «Просмотр» в макете, поэтому теперь фиксируйте и определяйте контент для элементов ImageView и TextView. Наконец, создайте новый Toast с Toast (Context) и установите некоторые свойства тоста, такие как гравитация и продолжительность. Затем вызовите setView (Вид) и передайте ему раздутый макет. Теперь вы можете отображать тост с помощью настраиваемого макета, вызывая show ().

Примечание. Не используйте публичный конструктор для Toast, если вы не собираетесь определять макет с помощью setView (View). Если у вас нет настраиваемого макета, вы должны использовать makeText (Context, int, int) для создания Toast.

Я думаю, что большинство обычных xml-примеров из Интернета основаны на одном источнике. Андроидные документы, которые, на мой взгляд, очень устарели. Fill_parent больше не должен использоваться. Я предпочитаю использовать wrap_content в сочетании с xml.9.png. Таким образом вы можете определить минимальный размер toastbackground по всему размеру предоставленного источника.

Если требуются более сложные тосты, вместо LL следует использовать рамку или относительный макет.

toast.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/points_layout" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/background" android:layout_gravity="center" android:gravity="center" > <TextView android:id="@+id/points_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:layout_margin="15dp" android:text="@+string/points_text" android:textColor="@color/Green" /> </LinearLayout> 

background.xml

 <?xml version="1.0" encoding="utf-8"?> <nine-patch xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/background_96" android:dither="true"/> 

Background_96 – background_96.9.png.

Это не очень хорошо проверено, подсказки оценили 🙂

Это то, что я использовал

AllMethodsInOne.java

 public static Toast displayCustomToast(FragmentActivity mAct, String toastText, String toastLength, String succTypeColor) { final Toast toast; if (toastLength.equals("short")) { toast = Toast.makeText(mAct, tText, Toast.LENGTH_SHORT); } else { toast = Toast.makeText(mAct, tText, Toast.LENGTH_LONG); } View tView = toast.getView(); tView.setBackgroundColor(Color.parseColor("#053a4d")); TextView mText = (TextView) tView.findViewById(android.R.id.message); mText.setTypeface(applyFont(mAct)); mText.setShadowLayer(0, 0, 0, 0); tView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { toast.cancel(); } }); tView.invalidate(); if (succTypeColor.equals("red")) { mText.setTextColor(Color.parseColor("#debe33")); tView.setBackground(mAct.getResources().getDrawable(R.drawable.toast_rounded_red)); // this is to show error message } if (succTypeColor.equals("green")) { mText.setTextColor(Color.parseColor("#053a4d")); tView.setBackground(mAct.getResources().getDrawable(R.drawable.toast_rounded_green)); // this is to show success message } return toast; } 

YourFile.java

При звонке просто напишите ниже.

 AllMethodsInOne.displayCustomToast(act, "This is custom toast", "long", "red").show(); 

Вы можете скачать код: здесь

Шаг 1:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:id="@+id/btnCustomToast" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Custom Toast" /> </RelativeLayout> 

Шаг 2:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/custom_toast_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/> <TextView android:id="@+id/custom_toast_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="My custom Toast Example Text" /> </LinearLayout> 

Шаг 3:

 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button btnCustomToast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnCustomToast= (Button) findViewById(R.id.btnCustomToast); btnCustomToast.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Find custom toast example layout file View layoutValue = LayoutInflater.from(MainActivity.this).inflate(R.layout.android_custom_toast_example, null); //Creating the Toast object Toast toast = new Toast(getApplicationContext()); toast.setDuration(Toast.LENGTH_SHORT); // gravity, xOffset, yOffset toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setView(layoutValue);//setting the view of custom toast layout toast.show(); } }); } } 

Код для файла MainActivity.java.

 package com.android_examples.com.toastbackgroundcolorchange; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button BT; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BT = (Button)findViewById(R.id.button1); BT.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast ToastMessage = Toast.makeText(getApplicationContext(),"Change Toast Background color",Toast.LENGTH_SHORT); View toastView = ToastMessage.getView(); toastView.setBackgroundResource(R.layout.toast_background_color); ToastMessage.show(); } }); } } 

Код для файла макета activity_main.xml.

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.android_examples.com.toastbackgroundcolorchange.MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="CLICK HERE TO SHOW TOAST MESSAGE WITH DIFFERENT BACKGROUND COLOR INCLUDING BORDER" /> </RelativeLayout> 

Код для файла компоновки toast_background_color.xml, созданного в папке res-> layout.

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="3dp" android:color="#ffffff" ></stroke> <padding android:left="20dp" android:top="20dp" android:right="20dp" android:bottom="20dp" /> <corners android:radius="10dp" /> <gradient android:startColor="#ff000f" android:endColor="#ff0000" android:angle="-90"/> </shape>