Цвет значков дизайна материалов
Каким цветом должен быть значок "темного" материала?
В официальной документации (https://www.google.com/design/spec/style/icons.html#icons-system-icons внизу) 54% черного (серый), но все загрузки значков материалов либо белый, либо 100% черный.
![введите описание изображения здесь]()
Также на новом официальном сайте https://www.google.com/design/icons/ вы можете скачать либо белый, либо черный, но не "серый"!
Итак, я должен установить 54% для всех загруженных значков для себя?
Или я что-то пропустил?
Ответы
Ответ 1
Я слишком поздно ответить, но тем не менее я отвечу на вопрос, так как это может сэкономить много времени для некоторых разработчиков. Я сам разработчик много боролся, создавая значки разных цветов, и поскольку я не дизайнер, это было очень сложно. После многого поиска я нашел этот плагин в Android Studio под названием Android Icon Generator. Он создает все значки материалов всех цветов с различными размерами, а также с коэффициентом непрозрачности. Это отличная помощь для разработчиков, которые не умеют разрабатывать. Также нет необходимости загружать значки отдельно, этого плагина достаточно.
Ответ 2
В Android Asset Studio есть Generic Icon Generator со всеми значками Material, и вы можете выберите нужный цвет.
Ответ 3
Есть три способа обработки непрозрачности:
a) Простой, я загружаю их (на materialdesignicons.com, если мне нужен серый вариант) и используйте их, так как мне не нужно что-либо менять. Если я не найду тот, который мне нужен, я загружаю черный (белый) и преобразую его в 54% -ную непрозрачную версию (это 30-секундная работа на gimp/photoshop).
b) Если мне нужно только "нормальное" и "нажатое" состояние, я загружаю черный (белый), создаю две версии: 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), поэтому вам не нужно программно программировать нажатие на изменение непрозрачности, но при этом вы можете изменить его общее значение по мере необходимости.