Come tingere un'immagine risorsa icona in un oggetto FloatingAction? Ho provato favoriteFab.setColorFilter(R.color.yellow, PorterDuff.Mode.OVERLAY);
ma non ha avuto successo.Icona tinta Android in FloatingActionButton
risposta
È possibile impostare la tinta del colore del drawable come se si stesse utilizzando l'API 21 o superiore.
mFAB.getDrawable(). Mutate(). SetTint (getResources(). GetColor (R.color.yourColor));
E.g.
mFAB = (FloatingActionButton) findViewById(R.id.fab);
mFAB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "Yummy snackbar", LENGHT_LONG).show();
}
});
mFAB.getDrawable().mutate().setTint(getResources().getColor(R.color.colorAccent));
Aggiornamento: Dal getColor è stato deprecato si dovrebbe usare ContextCompat invece. Utilizzare il seguente es:
mFAB.getDrawable().mutate().setTint(ContextCompat.getColor(this, R.color.colorAccent));
grazie Vieuser, proverò – fab
funziona solo API> 21 –
Funziona solo su API> 21. Controlla la mia risposta se vuoi usarla su API inferiori –
Drawable fabDr= mFAB.getDrawable();
DrawableCompat.setTint(fabDr, Color.WHITE);
È possibile utilizzare semplice la DrawableCompat a sostegno-v4 come segue:
Drawable drawable = mFloatingActionButton.getDrawable();
// Wrap the drawable so that future tinting calls work
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);
// We can now set a tint
DrawableCompat.setTint(drawable, ContextCompat.getColor(this, R.color.white));
// ...or a tint list
DrawableCompat.setTintList(drawable, ColorStateList.valueOf(ContextCompat.getColor(this, R.color.white)));
// ...and a different tint mode
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);
Sto assumendo favoriteFab è il vostro FloatingActionButton. È possibile utilizzare:
int color = ContextCompat.getColor(this, R.color.yellow);
favoriteFab.getDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
È possibile utilizzare DrawableCompat.setTintList()
invece:
Drawable drawable = DrawableCompat.wrap(fab.getDrawable());
DrawableCompat.setTint(drawable, myColorInt);
fab.setImageDrawable(drawable);
Perché sto diventando -5, questa è solo una domanda ?? – fab
Mi stavo chiedendo anch'io ... forse la mancanza di dettagli? Posso capire la domanda però ... idk. –