Как установить цвет фона на ImageView на Android?

Есть два способа сделать это:

1. Использование стилей

Вы можете определить свои собственные стили, создав файлы XML в каталоге res/values. Итак, предположим, что вы хотите иметь красный и полужирный текст, тогда вы создаете файл с этим контентом:



  
  

Вы можете назвать его так, как хотите, например res/values/red.xml. Тогда единственное, что вам нужно сделать, это использовать это представление в виджетах, которые вы хотите, например:





. Для получения дополнительной информации вы можете прочитать эту статью: Понимание Android-тем и Стили

2. Использование пользовательских классов

Это еще один возможный способ достичь этого, и он должен был предоставить ваш собственный TextView, который всегда устанавливал цвет текста независимо от того, что вы хотите; например:

import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.widget.TextView;
public class RedTextView extends TextView{
    public RedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setTextColor(Color.RED);
    }
}

Затем вам просто нужно рассматривать его как нормальный TextView в вашем XML-файле:






Используете ли вы один или другой выбор зависит от ваших потребностей. Если единственное, что вы хотите сделать, это изменить внешний вид, тогда лучший подход будет первым. С другой стороны, если вы хотите изменить внешний вид и добавить некоторые новые функции в свои виджеты, второй вариант - это путь.

29
задан CarinaPilar 19 October 2013 в 01:08
поделиться

3 ответа

RGB: 255, 255, 255 - это код цвета для WHITE. Так как цвет фона вашего родительского макета также белый, вы не увидите разницу.

Попробуйте изменить цвет, например

backgroundImg.setBackgroundColor(Color.rgb(100, 100, 50));

Или измените цвет фона родительского макета.

30
ответ дан Abhishek V 19 October 2013 в 01:08
поделиться

Теоретически это должно работать ... но попробуйте так:

backgroundImg.setBackgroundColor(Color.parseColor("#FFFFFF"));
16
ответ дан Alécio Carvalho 19 October 2013 в 01:08
поделиться

Использование PorterDuff.Mode:

imageView1.setColorFilter(colorCode,android.graphics.PorterDuff.Mode.SRC_IN);

PorterDuff.mode позволяет создавать и накладывать изображения в Android, см. Также Что означает PorterDuff.Mode в андроидной графике. Что он делает ?

0
ответ дан Community 19 October 2013 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: