Android: comment définir la couleur du texte d’un Toast

J’affiche un message de toast comme résultat d’une instruction if en utilisant le code suivant:

Toast.makeText(getBaseContext(), "Please Enter Price", Toast.LENGTH_SHORT).show(); 

Il est affiché sous forme de texte blanc sur un fond blanc, en tant que tel, il ne peut pas être lu! Ma question est, comment puis-je changer la couleur du texte du pain grillé?

Vous pouvez créer une view Toast personnalisée en fonction de vos besoins. Reportez-vous à la section intitulée «Création d’une vue de toast personnalisée» à l’ adresse http://developer.android.com/guide/topics/ui/notifiers/toasts.html.

Vous pouvez réaliser cela très facilement, sans créer de disposition personnalisée en modifiant le Toast par défaut:

 Toast toast = Toast.makeText(this, resId, Toast.LENGTH_SHORT); TextView v = (TextView) toast.getView().findViewById(android.R.id.message); v.setTextColor(Color.RED); toast.show(); 

Vous pouvez trouver la disposition utilisée par la vue de toast par défaut dans le SDK Android:

$ ANDROID-SDK $ / plates-formes / android-8 / data / res / layout / transient_notification.xml

Vous voudrez peut-être créer un Toast personnalisé

     

 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(); 

La source

La manière la plus simple de changer la couleur d’arrière-plan d’un toast et la couleur d’arrière-plan du texte d’un toast:

 View view; TextView text; Toast toast; toast.makeText(this, resId, Toast.LENGTH_SHORT); view = toast.getView(); text = (TextView) view.findViewById(android.R.id.message); text.setTextColor(getResources().getColor(R.color.black)); text.setShadowLayer(0,0,0,0); view.setBackgroundResource(R.color.white); toast.show(); 

Vous pouvez également utiliser SpannableSsortingng . Il peut également colorer des parties de la chaîne.

 SpannableSsortingng spannableSsortingng = new SpannableSsortingng("This is red text"); spannableSsortingng.setSpan( new ForegroundColorSpan(getResources().getColor(android.R.color.holo_red_light)), 0, spannableSsortingng.length(), 0); Toast.makeText(this, spannableSsortingng, Toast.LENGTH_SHORT).show(); 

Essayez d’utiliser la bibliothèque Toasty. C’est vraiment facile à utiliser – https://github.com/GrenderG/Toasty

entrer la description de l'image ici