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?
- Android Vibrar en la tostada (Homer: Mmmm vibrar en la tostada)
- ¿Mostrar dos mensajes Toast a la vez?
- Eliminar "Gracias. Su artículo aparecerá en breve. "Tostada de aparecer después de la compra de InApp
- Error de Android Toast
- Contabilización del mensaje Toast de un hilo
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.
- Android: Cómo configurar el color del texto de un Toast
- Android Toast para mostrar en la actividad anterior
- Tostada no se muestra en el Samsung Galaxy S3 (última actualización 4.1.2)
- Problema de brindis en android
- Tostadas que llegan varias veces
- Cómo cambiar la alineación de Toast por programación?
- Mostrar una imagen en un brindis
- Cancelar un brindis en Android antes de que aparezca
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>
- Android – Barcode Scanning, Opciones? Zxing?
- Android: Crear nuevo permiso del sistema a través del código fuente de AOSP.