Ответ 1
Вам следует попробовать использовать ColorDrawable. Его можно построить с помощью цвета, используя конструктор ColorDrawable(int color)
Мне нужно создать простой объект Drawable
с необходимым цветом в качестве цвета фона, но я не знаю, как я могу сделать это программно, не используя XML-схему (возможно ли это на самом деле?). Пожалуйста, скажите мне, мне нужно сделать это для создания LayerDrawable
и работы с SeekBar
(изменение фона SeekBar
программно). Заранее спасибо.
Вам следует попробовать использовать ColorDrawable. Его можно построить с помощью цвета, используя конструктор ColorDrawable(int color)
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);
выше код изначально размещен здесь
Как это предлагает @Thrakbad, вы можете использовать ColorDrawable
:
TextView textView = new TextView(this);
ColorDrawable colorDrawable = new ColorDrawable(0xFFFF0000);
textView.setBackgroundDrawable(colorDrawable);