Cómo personalizar el brindis en Android

Soy nuevo en Android y estoy trabajando en una aplicación de ejemplo. Quiero aprender cómo podemos personalizar el Android Toast predeterminado. Quiero cambiar el color, el estilo y el otro atributo de la tostada.

¿Podemos agregar la imagen en tostada también?

He leído el siguiente post en stackOverflow

Cómo personalizar Tostada en Android? . Personalizar la tostada en android

Pero ninguno de ellos explica cómo agregar imagen en Toast.

Sí podemos cambiar el color, tamaño, posición y otros atributos de Toast. También podemos agregar una imagen a Toast.

Un buen blog para esto Cómo personalizar Toast en Android Todos los contenidos se toman de este blog

Puede crear un XML e inflarlo.

También puede hacerlo en tiempo de ejecución

LinearLayout layout=new LinearLayout(this); layout.setBackgroundResource(R.color.LightOrange); TextView tv=new TextView(this); // set the TextView properties like color, size etc tv.setTextColor(Color.RED); tv.setTextSize(15); tv.setGravity(Gravity.CENTER_VERTICAL); // set the text you want to show in Toast tv.setText("My Custom Toast at Bottom of Screen"); ImageView img=new ImageView(this); // give the drawble resource for the ImageView img.setImageResource(R.drawable.myimage); // add both the Views TextView and ImageView in layout layout.addView(img); layout.addView(tv); Toast toast=new Toast(this); //context is object of Context write "this" if you are an Activity // Set The layout as Toast View toast.setView(layout); // Position you toast here toast position is 50 dp from bottom you can give any integral value toast.setGravity(Gravity.BOTTOM, 0, 50); toast.show(); 
 LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.cred_menu_like_popup, (ViewGroup) activity.findViewById(R.id.like_popup_layout)); ImageView imageView = (ImageView) layout.findViewById(R.id.like_popup_iv); TextView text = (TextView) layout.findViewById(R.id.like_popup_tv); text.setText("Like"); Toast toast = new Toast(activity.getApplicationContext()); toast.setGravity(Gravity.BOTTOM, 0, 200); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); 

Aquí está el diseño

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/like_popup_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/customshapetransparent" android:paddingTop="35dp" android:paddingBottom="25dp" android:paddingLeft="35dp" android:paddingRight="35dp" > <ImageView android:id="@+id/like_popup_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/like_popup_tv" android:layout_below="@id/like_popup_iv" android:layout_marginTop="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textStyle="bold" android:textColor="@android:color/white" android:textSize="20sp" /> </RelativeLayout> 

El diseño de la forma personalizada es:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#60000000" /> <corners android:radius="8dp" /> </shape> 

Para personalizar la forma de Toast y el color utilizar esto.

 Toast toast = Toast.makeText(getApplicationContext(), "You not Subscribe Try again", Toast.LENGTH_LONG); View vieew = toast.getView(); // vieew.setBackgroundColor(Color.parseColor("#BD8BDC")); vieew.setBackgroundResource(R.drawable.textinputborder); toast.setView(vieew); toast.show(); //This displays the toast for the specified lenght. 

También use en R.drawable.textinputborder

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#83BB66" /> <stroke android:width="1dp" android:color="#1B200A" /> <corners android:radius="20dp" /> </shape> </item> </selector> 

Primero diseñe su interfaz personalizada … por simplicidad i diseño personalizado UI como a continuación:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/CustomToastLayoutRoot" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/close" android:id="@+id/imageView" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Warning !!!" android:id="@+id/textView" android:layout_gravity="bottom" /> </LinearLayout> 
  • Alternativa al uso de tostadas
  • Cómo hacer tostadas de otro hilo (sans runOnUiThread)
  • ¿Cómo mostrar Toast de un Servicio después de que la actividad principal termine?
  • Android - ¿Cómo excute el brindis cada 10 segundos usando ScheduledExecutorService?
  • Android cancela Toast al salir de la aplicación y cuando se muestra el brindis
  • Toast.makeText (...) .show () es a veces mal alineado
  • El botón de Android muestra diferentes mensajes de Toast dependen del número de clics
  • Cómo configurar el estilo tostado como tema?
  • ¿Terminar la actividad después de que el mensaje del pan tostado desaparezca?
  • Tostas versus cuadros de diálogo: ¿cuál usar cuando?
  • ¿De dónde viene esta tostada?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.