gpt4 book ai didi

android - 以编程方式更改可绘制形状的颜色

转载 作者:行者123 更新时间:2023-11-29 21:07:14 26 4
gpt4 key购买 nike

我需要以编程方式更改可绘制形状的颜色...

我正在用这个

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/app_theme_blue" />
<corners android:radius="8dp" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>

这里我需要改变 android:color="@color/app_theme_blue" 的颜色。请帮助我。

最佳答案

是的,你可以。而且真的 super 简单。

首先,请记住,使用白色图像更容易,以便有一个中性源来应用颜色(因此,想象在透明背景上有一个白色轮廓)。

Drawable drw = mContext.getResources().getDrawable(R.id.baseDrawable);

这一行所做的只是从资源中获取 Drawable(baseDrawable - 随便命名)。

接下来,我们将使用 setColorFilter() 方法的重载,它接受两个参数:我们想要的颜色和混合模式。

请注意,默认情况下 Drawable 是不可变的,因此我们必须使其可变,以便对其应用任何转换。

drw.mutate().setColorFilter(finalColor, PorterDuff.Mode.MULTIPLY);

现在您可以专注于您的软件,而无需对同一资源进行多种变体。

顺便说一下,没有 API 级别要求,它从 API 级别 1 开始工作。

附言:

这些是必需的导入:

import android.content.Context;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;

关于android - 以编程方式更改可绘制形状的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com