Je tente de créer un dessin en code et de modifier la couleur en fonction de certains critères. Lorsque j'essaie de définir le dessin comme arrière-plan de l'ImageView, il s'affiche mais ne me laisse pas définir de remplissage. J'ai réalisé que j'ai besoin de définir l'image ImageView via la fonction setImageDrawable() afin de pouvoir définir le remplissage.Définition d'une ressource ImageView en tant que dessable
Le problème que je rencontre est que lorsque je l'ai défini via la fonction setImageDrawable() rien n'est affiché.
Voici ce que je l'ai écrit:
<?xml version="1.0" encoding="utf-8"?>
ImageView icon = (ImageView) row.findViewById(R.id.icon);
ShapeDrawable mDrawable;
int x = 0;
int y = 0;
int width = 50;
int height = 50;
float[] outerR = new float[] { 12, 12, 12, 12, 12, 12, 12, 12 };
mDrawable = new ShapeDrawable(new RoundRectShape(outerR, null, null));
mDrawable.setBounds(x, y+height, x + width, y);
switch(position){
case 0:
mDrawable.getPaint().setColor(0xffff0000); //Red
break;
case 1:
mDrawable.getPaint().setColor(0xffff0000); //Red
break;
case 2:
mDrawable.getPaint().setColor(0xff00c000); //Green
break;
case 3:
mDrawable.getPaint().setColor(0xff00c000); //Green
break;
case 4:
mDrawable.getPaint().setColor(0xff0000ff); //Blue
break;
case 5:
mDrawable.getPaint().setColor(0xff0000ff); //Blue
break;
case 6:
mDrawable.getPaint().setColor(0xff696969); //Gray
break;
case 7:
mDrawable.getPaint().setColor(0xff696969); //Gray
break;
case 8:
mDrawable.getPaint().setColor(0xffffff00); //Yellow
break;
case 9:
mDrawable.getPaint().setColor(0xff8b4513); //Brown
break;
case 10:
mDrawable.getPaint().setColor(0xff8b4513); //Brown
break;
case 11:
mDrawable.getPaint().setColor(0xff8b4513); //Brown
break;
case 12:
mDrawable.getPaint().setColor(0xffa020f0); //Purple
break;
case 13:
mDrawable.getPaint().setColor(0xffff0000); //Red
break;
case 14:
mDrawable.getPaint().setColor(0xffffd700); //Gold
break;
case 15:
mDrawable.getPaint().setColor(0xffff6600); //Orange
break;
}
icon.setImageDrawable(mDrawable);
icon.setPadding(5, 5, 5, 5);
Il en résulte un espace pour la ImageView, mais pas d'image.
Merci, Rob
Je ne suis pas très familier avec tout cela. Pourrais-je encore les faire avec les coins arrondis que j'avais avant? – tgai