Подтвердить что ты не робот

Можно ли изменить цвет значка дизайна материала из xml в Android?

Я действительно пытаюсь использовать цветные значки в своем приложении. Я загрузил официальный пакет значков дизайна материалов из здесь. Теперь все значки в этом пакете либо белые, либо серые, либо черные. Но я хочу, чтобы значки были другого цвета. Что-то вроде значков с левой стороны в этом изображении. Значки телефона и почты - синий. Как я могу это сделать?

4b9b3361

Ответ 1

Для изменения цвета значка попробуйте

<ImageButton
    android:layout_width="your value"
    android:layout_height="your value"
    /* and so on ... */

    android:tint="YourColor"
    />

Примечание: цвет оттенка окрашивается поверх изображения, а не цвет замены. Таким образом, оттенок #80ff0000 на черном изображении дает вам 50% красного цвета на черном, а не 50% красного на фоне. То есть это не эквивалентно изображениям шаблонов iOS.

Ответ 2

Вы можете использовать TintImageView в библиотеке поддержки appcompat, а затем затемнить/раскрасить изображение, просто назовите android:backgroundTint, чтобы подкрасить изображение в один цвет.


Xml

<TintImageView
android:layout_width=""
android:layout_height="" 
android:src=""
android:backgroundTint="@color/green"/>

или

<ImageView 
android:tint="the_color_you_want"/>

Programatically

ImageView yourImageView = findViewById(...) yourImageView.setColorFilter(Context.getColor(your_color_here))


Таким образом, приведенный выше xml отобразит цветное изображение imageView, что означает, что он будет раскрашивать каждый пиксель изображения, видимый зеленым.

Ответ 3

Я искал то же самое, но динамически менял код. Надеюсь, это поможет кому-то искать то же самое.

Создайте ImageView для значка и используйте setColorFilter в этом представлении.

ImageView imageViewIcon = (ImageView) listItem.findViewById(R.id.imageViewIcon);
imageViewIcon.setColorFilter(getContext().getResources().getColor(R.color.blue));

Ответ 4

<vector android:height="48dp" android:viewportHeight="24.0"
    android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#ca0f0f" android:pathData="M3,5v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2H5c-1.11,0 -2,0.9 -2,2zm12,4c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3 1.34,-3 3,-3 3,1.34 3,3zm-9,8c0,-2 4,-3.1 6,-3.1s6,1.1 6,3.1v1H6v-1z"/>
</vector>

вы меняете цвет, меняя андроид: fillColor = "# ca0f0f"

Ответ 5

Много альтернатив здесь уже в этом потоке. Возможно, я могу добавить еще одного для тех, кто считает это удобным:

Вы также можете использовать класс Drawable, код которого выглядит следующим образом

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.ic_play_circle_filled);
    drawable = DrawableCompat.wrap(drawable);
    DrawableCompat.setTint(drawable, getResources().getColor(R.color.colorPrimary));

Несмотря на то, что выше было сделано трюк для меня, но для моего использования caseicient было использовать android:tint

Ответ 6

Как изменить цвет иконки материала в XML

<ImageButton 
     android:layout_width="YourValue"
     android:layout_height="YourValue"
     ...
     android:tint="YourColor" // this line do the magic
/>

Ответ 7

Да, это возможно и просто с помощью этой библиотеки: https://github.com/jrvansuita/IconHandler

Вы можете легко называть это:

Icon.on(yourImageView).color(R.color.your_color).icon(R.mipmap.your_icon).put();

Ответ 8

Используйте следующий код, чтобы изменить цвет вашего значка из XML

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:foregroundTintMode="src_over"
    android:tint="Your colour"
    ...
    app:srcCompat="@android:drawable/ic_menu_slideshow" 
/>

Ответ 9

Добавив к тому, что сказал Мурали, сделайте несколько рисунков с разными цветами заливки.

Затем, когда это необходимо, добавьте в свой код:

imageView.setImageResource(R.drawable.drawable_with_different_color)

НЕ: imageView.setBackgroundResource()

Ответ 10

Когда файл значка находится в формате .png, вы должны изменить цвет, используя инструмент, с которого вы создали значок. и добавьте его, используя ImageAsset в проект.

Ответ 11

Это файл .png. Там много редакторов изображений. Вам просто нужно заполнить детали