gpt4 book ai didi

android - 更改 Drawable 的颜色平衡

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:57 27 4
gpt4 key购买 nike

可以改变 Drawable 的颜色平衡吗?

比如我想转换
enter image description here => enter image description here

我尝试这样做,但它会将我的 Drawable 的所有颜色更改为一种独特的颜色:

        Drawable drawable; // my drawable
float r = Color.red(110) / 255f;
float g = Color.green(150) / 255f;
float b = Color.blue(200) / 255f;

ColorMatrix cm = new ColorMatrix(new float[] {
// Change red channel
r, 0, 0, 0, 0,
// Change green channel
0, g, 0, 0, 0,
// Change blue channel
0, 0, b, 0, 0,
// Keep alpha channel
0, 0, 0, 1, 0,
});
ColorMatrixColorFilter cf = new ColorMatrixColorFilter(cm);

drawable.setColorFilter(cf);

我指定我不想将我的 src 图像拆分为 2 个或更多层并对其中一个进行着色。

最佳答案

您可以使用 mutate().setColorFilter() 将具有所需颜色的色调应用到您的图像,并将具有新颜色的 Drawable 设置到您的 ImageView 中:

   ImageView imgImagen = (ImageView)findViewById(R.id.myImageView);
Drawable myImage = getResources().getDrawable( R.drawable.boy );
//Using red color.
myImage.mutate().setColorFilter(0xffff0000, PorterDuff.Mode.MULTIPLY);
imgImagen.setImageDrawable(myImage);

例如使用这个ImageView

   <ImageView
android:id="@+id/myImageView"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/boy"
android:contentDescription="" />

你将得到这张图片作为结果:

enter image description here

您也可以使用示例中定义的颜色:

 myImage.mutate().setColorFilter(Color.argb(255, 110, 150, 200), PorterDuff.Mode.MULTIPLY);

关于android - 更改 Drawable 的颜色平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47846577/

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