Я пытаюсь установить цвет фона представления (в данном случае кнопки).
Я использую этот код:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
Это заставляет кнопку исчезать с экрана. Что я делаю не так, и как правильно изменить цвет фона в любом представлении?
Спасибо.
Ответы:
Вы сделали свою кнопку прозрачной. Первый байт - это альфа.
Пытаться
v.setBackgroundColor(0xFF00FF00);
источник
0xff00ff00
, точно так же , как то , что предлагается в ответ, за исключением того, он также имеет преимущество , заключающееся читаемым человеком . Большинство разработчиков предпочли бы удобочитаемое решение.Когда вы вызываете setBackgoundColor, он перезаписывает / удаляет любой существующий фоновый ресурс, включая любые границы, углы, отступы и т. Д. Что вы хотите сделать, это изменить цвет существующего фонового ресурса ...
Поэкспериментируйте с PorterDuff.Mode. * Для получения различных эффектов.
источник
Несколько вариантов сделать это ...
Установить зеленый фон:
Установите зеленый фон с помощью альфа :
Установите зеленый цвет фона с константой Color.GREEN:
Установить цвет на зеленый, определяя в Colors.xml
и используя:
и:
или длиннее наматывается:
и:
источник
getResources().getColor(...)
устарел stackoverflow.com/questions/31842983/…v.setBackgroundResource(R.color.myGreen);
при использованииcolors.xml
invalidate
вызовы, как вы можете видеть,setBackground...
методы уже вызывают это.v.setBackgroundColor(0x00FF00);
это просто их код, который, по их словам, не работает. Я также ожидал бы, что это будет прозрачно.Вы можете установить hex-цвет для любого ресурса с помощью:
источник
Код не устанавливает зеленую кнопку. Вместо этого она делает кнопку полностью невидимой.
Пояснение: неправильное шестнадцатеричное значение цвета. При нулевом альфа-значении цвет будет невидимым.
Правильное шестнадцатеричное значение
0xFF00FF00
для полной непрозрачности зеленого цвета. Любое значение альфа между 00 и FF приведет к прозрачности.источник
По любому
View
? То, что у вас есть, правильно, хотя вы должны отказаться отinvalidate()
вызова.Тем не менее, некоторые
Views
уже имеют опыт работы. АButton
, например, уже есть фон: лицо самой кнопки. Это фонStateListDrawable
, который вы можете найтиandroid-2.1/data/res/drawable/btn_default.xml
в вашей установке Android SDK. Это, в свою очередь, относится к группе растровых изображений из девяти патчей, доступных в нескольких плотностях. Вам нужно будет клонировать и модифицировать все это для достижения ваших зеленых целей.Короче говоря, вам лучше будет найти другой шаблон пользовательского интерфейса, чем пытаться изменить фон
Button
.источник
Для установки первого цвета, который будет отображаться на экране, вы также можете сделать это в соответствующем layout.xml (лучший дизайн), добавив это свойство в соответствующий View:
источник
попробуйте добавить:
источник
Я использую на API мин 16, цель 23
источник
Вы можете просто использовать:
источник
источник
Этот вопрос говорит об изменении цвета фона представления. В одном из ответов человек объясняет, как изменить цвет фона во время выполнения. Очевидно, вы собираетесь изучить, как изменять другие объекты на экране, но это должно дать вам хорошее начало, по крайней мере, позволив вам изменить цвет фона представления при нажатии кнопки.
источник
Заявление с Android 6 использовать ContextCompact
источник
Вы можете просто использовать:
источник
В kotlin вы можете сделать это так:
Где
getColorCompat()
функция расширения:источник
Добавляет цвет к предыдущему значению цвета, поэтому у меня другой цвет.
Что работает для меня это:
источник
Предположим, у нас есть основной цвет в
values=>colors.xml
виде:поэтому, если мы хотим использовать наш собственный цвет,
setBackgroundColor(@ColorInt int Color)
тогда нам просто нужна аннотация@SuppressLint("ResourceAsColor")
с конструктором / методом, который будет использоваться как:источник
Вы должны передать
int
в аргументе.Первый пример:
Второй пример:
источник
Это должно работать нормально:
v.setBackgroundColor(0xFF00FF00);
источник
Я перепробовал все вышеперечисленные способы. Но я не достиг того, что мне нужно. Вот моя попытка. Если вы используете hexcode для цвета и хотите установить цвет в качестве фона изображения, тогда это код kotlin.
источник