Question Comment créer un Drawable avec la couleur de fond nécessaire par programmation?


J'ai besoin de créer un simple Drawable objet avec la couleur nécessaire comme couleur de fond, mais je ne sais pas comment je peux le faire par programmation sans utiliser un schéma XML (est-ce vraiment possible?). S'il vous plaît, dites-moi, je dois le faire pour faire un LayerDrawable et travailler avec SeekBar (fond changeant de SeekBar par programme). Merci d'avance.


11
2018-01-16 12:11


origine


Réponses:


Vous devriez essayer d'utiliser un ColorDrawable. Il peut être construit avec une couleur en utilisant le constructeur ColorDrawable(int color)


31
2018-01-16 12:16



ColorDrawable sera utile dans votre cas, vous pouvez passer paramètre Couleur pour votre tirable.

ou vous pouvez faire quelque chose comme ci-dessous:

ImageView imgStatus = (ImageView) findViewById(R.id.imgInfoIcon);
// Load the icon as drawable object
Drawable d = getResources().getDrawable(R.drawable.ic_menu_info_details);

// Get the color of the icon depending on system state
int iconColor = android.graphics.Color.BLACK
if (systemState == Status.ERROR)
    iconColor = android.graphics.Color.RED
else if (systemState == Status.WARNING)
    iconColor = android.graphics.Color.YELLOW
else if (systemState == Status.OK)
    iconColor = android.graphics.Color.GREEN

// Set the correct new color
d.setColorFilter( iconColor, Mode.MULTIPLY );

// Load the updated drawable to the image viewer
imgStatus.setImageDrawable(d);

le code ci-dessus est à l'origine posté ici


5
2018-01-16 12:22



Comme le suggère @Thrakbad, vous pouvez utiliser ColorDrawable:

    TextView textView = new TextView(this);
    ColorDrawable colorDrawable = new ColorDrawable(0xFFFF0000);
    textView.setBackgroundDrawable(colorDrawable);

3
2018-05-18 12:59