Есть три способа справиться с непрозрачностью:
а) Простой, я загружаю их (на сайте materialdesignicons.com, если мне нужен серый вариант) и использую их, так как мне не нужно ничего менять. Если я не могу найти тот, который мне нужен, я загружаю черный (белый) и преобразовываю его в версию с непрозрачностью 54% (это 30-секундная работа в gimp / photoshop).
б) Если мне нужно только «нормальное» и «нажатое» состояние, я загружаю черный (белый), создаю две версии: 54% для естественного и 87% для нажатого, затем я создаю файл с возможностью рисования, чтобы объединить их. (вы тоже можете справиться с фокусировкой):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@mipmap/settings_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@mipmap/settings" /> <!-- focused -->
<item android:drawable="@mipmap/settings" /> <!-- default -->
</selector>
c) Если мне нужно часто менять непрозрачность значка в моем коде, я делаю это программно:
ImageButton mButton = (ImageButton) findViewById(R.id.button);
final Drawable buttonIcon = context.getResources().getDrawable(R.mipmap.your_icon);
buttonIcon.setAlpha(138); //this is the value of opacity 1~255
mButton.setBackground(buttonIcon);
Обратите внимание, что вы можете комбинировать методы b) и c), поэтому вам не нужно программно управлять изменением непрозрачности нажатием, но вы все равно сможете изменить его общее значение по своему усмотрению.
person
Ruocco
schedule
30.05.2015