Подтвердить что ты не робот

Как создать Drawable с необходимым цветом фона программно?

Мне нужно создать простой объект Drawable с необходимым цветом в качестве цвета фона, но я не знаю, как я могу сделать это программно, не используя XML-схему (возможно ли это на самом деле?). Пожалуйста, скажите мне, мне нужно сделать это для создания LayerDrawable и работы с SeekBar (изменение фона SeekBar программно). Заранее спасибо.

4b9b3361

Ответ 1

Вам следует попробовать использовать ColorDrawable. Его можно построить с помощью цвета, используя конструктор ColorDrawable(int color)

Ответ 2

ColorDrawable будет вам полезен в вашем случае, вы можете передать параметр color для вашего ресурса.

или вы можете сделать что-то вроде ниже:

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

выше код изначально размещен здесь

Ответ 3

Как это предлагает @Thrakbad, вы можете использовать ColorDrawable:

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