Я пытаюсь создать нарисованный в коде и изменить цвет на основе некоторых критериев. Когда я пытаюсь установить Drawable в качестве фона ImageView, он отображается, но не позволяет мне устанавливать какие-либо отступы. Я понял, что мне нужно установить изображение ImageView с помощью функции setImageDrawable (), чтобы иметь возможность устанавливать отступы.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я устанавливаю ее с помощью функции setImageDrawable (), ничего не отображается.
Вот что я написал:
<?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);
Это приводит к пробелу для ImageView, но без изображения.
Спасибо,
Rob