it-swarm.com.ru

Как установить цвет фона представления

Я пытаюсь установить цвет фона для просмотра (в данном случае кнопки).

Я использую этот код:

// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

Это заставляет кнопку исчезнуть с экрана. Что я делаю не так, и как правильно изменить цвет фона в любом представлении?

Благодарю.

166
Peter vdL

Вы сделали свою кнопку прозрачной. Первый байт - это альфа.

Попробуйте v.setBackgroundColor(0xFF00FF00);

271
rainhut

Когда вы вызываете setBackgoundColor, он перезаписывает/удаляет любой существующий фоновый ресурс, включая любые границы, углы, отступы и т.д. Что вы хотите сделать, это изменить цвет существующего фонового ресурса ...

View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);

Поэкспериментируйте с PorterDuff.Mode. * Для получения различных эффектов.

140
EddieB

Несколько вариантов сделать это ...

Установить зеленый фон:

v.setBackgroundColor(0x00FF00);

Установить зеленый фон с помощью Альфа :

v.setBackgroundColor(0xFF00FF00);

Установите зеленый цвет фона с константой Color.GREEN:

v.setBackgroundColor(Color.GREEN);

Установить зеленый цвет фона в Colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>     
    <color name="myGreen">#00FF00</color> 
    <color name="myGreenWithAlpha">#FF00FF00</color> 
</resources>

и используя:

v.setBackgroundResource(R.color.myGreen);

а также:

v.setBackgroundResource(R.color.myGreenWithAlpha);

или длиннее наматывается:

v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));

а также:

v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
114
Elenasys

Вы можете установить hex-цвет для любого ресурса с помощью:

View.setBackgroundColor(Color.parseColor("#e7eecc"));
34
Vipul Patel
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();

Код не устанавливает зеленую кнопку. Вместо этого она делает кнопку полностью невидимой.

Пояснение: неправильное шестнадцатеричное значение цвета. При нулевом альфа-значении цвет будет невидимым.

Правильное шестнадцатеричное значение 0xFF00FF00 для полной непрозрачности зеленого цвета. Любое значение альфа между 00 и FF приведет к прозрачности.

16
malte kosian

и как правильно изменить цвет фона в любом представлении?

Вкл. любойView? То, что у вас есть, правильно, хотя вы должны отбросить вызов invalidate().

Однако у некоторых Views уже есть фон. Например, у Button уже есть фон: лицо самой кнопки. Этот фон представляет собой StateListDrawable, который вы можете найти в Android-2.1/data/res/drawable/btn_default.xml в вашей Android установке SDK. Это, в свою очередь, относится к группе растровых изображений из девяти патчей, доступных в нескольких плотностях. Вам нужно будет клонировать и модифицировать все это для достижения ваших зеленых целей.

Короче говоря, вам лучше будет найти другой шаблон пользовательского интерфейса, чем пытаться изменить фон Button.

12
CommonsWare

попробуйте добавить:

setBackgroundColor(Color.parseColor("#FF0000"));
11
Long Rainbow

Для установки первого цвета, который будет отображаться на экране, вы также можете сделать это в соответствующем файле layout.xml (лучший дизайн), добавив это свойство в соответствующий вид:

Android:background="#FF00FF00"
11
JustinB

Я использую на API мин 16, цель 23

Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);

WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
6
Vostro

Вы можете просто использовать:

view.setBackgroundColor(Color.parseColor("#FFFFFF"));
5
daniel kilinskas

Это вопрос говорит об изменении цвета фона представления. В одном из ответов человек объясняет, как изменить цвет фона во время выполнения. Очевидно, вы собираетесь изучить, как изменять другие объекты на экране, но это должно дать вам хорошее начало, по крайней мере, позволив вам изменить цвет фона представления при нажатии кнопки.

4
jbranchaud
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
4
Gianluca Demarinis

Начиная с Android 6 используйте ContextCompat

        view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));
3
Raluca Lucaci

Вы можете просто использовать:

view.setBackgroundColor(Color.rgb(0, 198, 255));
2
Mahmoud salah eldien saber
view.setBackgroundColor(R.color.primaryColor);

Добавляет цвет к предыдущему значению цвета, поэтому у меня другой цвет.

Что работает для меня это:

view.setBackgroundResource(R.color.primaryColor);
0
meralon

Предположим, у нас есть основной цвет в values=>colors.xml как:

<resources>
    <color name="primary">#FDD835</color>
</resources>

поэтому, если мы хотим использовать наш собственный цвет в setBackgroundColor(@ColorInt int Color), тогда нам просто нужна аннотация @SuppressLint("ResourceAsColor") с конструктором/методом, который будет использоваться как:

    @SuppressLint("ResourceAsColor")
    public _LinearLayout(Context context) {
        super(context);

        // Formatting our layout : )
        super.setBackgroundColor(R.color.primary);

        ....


    }
0
ForWebTech