2016-05-06 3 views
0

У меня есть следующий селектор для моих кнопок в style/v21Добавить прозрачность цвета для имитации отключенного состояния

// button_color_state.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Disable background --> 
<item android:state_enabled="false" android:color="#dfdfdf"/> 

<!-- Enabled background --> 
<item android:color="@color/buttonColor"/> 
</selector> 

теперь вместо явного говоря, когда кнопка отключена сделать это серый , Могу ли я не сказать, как сказать, Просто сделайте его поблекшим/прозрачным домом @color/buttonColor

Также кто-нибудь знает, что такое стандартная прозрачность для отключенной кнопки для Android?

Я до сих пор не знаю, почему в v21 теперь мы должны явно предоставить отключенный цвет. pre v21 все получилось просто отлично.

+0

Есть ли способ применить альфа-значение на '@ color/buttonColor' вместо того, чтобы определить цвет и цвет кнопки с отключенным и включенным? – Zapnologica

ответ

1

Вы можете изменить альфа и отключить его на код, например:

button.setAlpha(.5f); 
button.setClickable(false); 

Это может быть внутри проверки на создание деятельности.

0

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

Например, если кнопка цвет красный: #ff0000, просто добавьте значение альфа на 50% к перед ним: #50ff0000

Теперь у вас есть цвет, который только слегка «утрачен» версию вашего оригинальный цвет. Значение альфа - это всего лишь процент, 00-99, поэтому вы можете играть с цифрами, чтобы получить нужное количество затухания на вашем цвете.

+0

Есть ли способ применить альфа-значение на '@ color/buttonColor' вместо того, чтобы отключить и включить цвет кнопки? – Zapnologica

+0

Не знаю, что я знаю, не изменяя альфа-код или альфа-атрибут, как это предлагается в некоторых других ответах. Я делаю это так в своих проектах, и у меня есть что-то вроде 'buttonColor' и' buttonColor_disabled' или что-то подобное. Это одна строка кода и не добавляет никакой сложности в вашу логику приложения. – NoChinDeluxe

0

Вы можете использовать альфа для изменения прозрачности объекта

Android: альфа = "0.0" тот невидимый

Android: альфа = "0.5" сквозной

Android: альфа = "1.0" full visible

Смежные вопросы