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

Как динамически менять цвет изображения в андроиде?

Я делаю такой тип проекта. В моем проекте меняются Цвет изображения динамически.

У меня есть одно цветное изображение в черной форме, когда пользователь нажимает на это изображение, меняя цвет изображения динамически зеленым.

enter image description here

Google и другие документы следуют, но я не решаю свою проблему.

Пожалуйста, помогите мне, есть ли какой-либо метод или документ для решения моей проблемы,

4b9b3361

Ответ 1

Вот как я это делаю: он вытягивает цвет из XML файла ресурса.

<resources>
<color name="new_color">#FFAAAAAA</color>
</resources>

В вашей деятельности .java файл:

import android.graphics.PorterDuff.Mode;

Resources res = context.getResources();
final ImageView image = (ImageView) findViewById(R.id.imageId);
final int newColor = res.getColor(R.color.new_color);
image.setColorFilter(newColor, Mode.SRC_ATOP);

Чтобы очистить вызов:

image.setColorFilter(null);

Ответ 2

imageView.setImageResource(R.drawable.ic_person_black_48dp);

imageView.setColorFilter(imageView.getContext().getResources().getColor(R.color.desired_color), PorterDuff.Mode.SRC_ATOP);

Ответ 3

Установите андроид: оттенок атрибут кнопки изображения/изображения на цвет.

android:tint="@android:color/black"

Необязательно вы можете установить атрибут android: tintMode.

Ответ 4

Создайте ресурс в папке с рисунком, например

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap
            android:src="@drawable/rect"
            android:tint="@color/red"/>
    </item>
</layer-list>

android:tint="@color/red" делает это.

Ответ 5

В XML используйте src not background tag в ImageView. В java code-

import android.graphics.PorterDuff.Mode;
final Context context=this;

        home1=(ImageView) findViewById(R.id.home1);
 Resources res = context1.getResources();
        final int newColor = res.getColor(android.R.color.black);
        home1.setColorFilter(newColor, Mode.SRC_ATOP);

Ответ 6

Поместите это в свой OnDraw, как раз перед тем, как нарисовать квадрат.

if (userclicked){
paint.setColor(Color.GREEN);
} else {
paint.setColor(Color.BLACK);
}

Конечно, если вы рисуете его с помощью canvas.drawRect(x0, y0, x1, y1, paint), который вы бы сделали, если бы рисовали простую форму.