Android BitmapShader改变颜色

标签 android bitmap shader

我需要一些帮助来实现我想要实现的目标。我在我的应用程序中使用 BitmapShader 在 Canvas 上绘图。我将自定义 png 文件设置为我的 paint 变量的着色器,我想更改着色器的颜色。

这是我正在使用的示例代码:

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.particle_point);
    BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    mPaint.setShader(shader);
    ColorFilter filter = new LightingColorFilter(0xFFFFFFFF , 0x000000FF );
    mPaint.setColorFilter(filter);

我发现我可以通过使用来改变它的颜色:

ColorFilter filter = new LightingColorFilter(0xFFFFFFFF, 0x000000FF);

,但我需要能够通过使用自定义颜色选择器更改它的颜色,它返回类似于以下的颜色代码:-234423123

那么有什么方法可以使用这个颜色代码并将其设置为我的 paint 变量的颜色。

提前致谢!

最佳答案

要转换为十六进制的颜色是:FFFFFFFFF206FCAD。所以你需要去掉前 8 个 F:

int color = -234423123;//0xFFFFFFFFF206FCAD
int myColor = 0x00000000FFFFFFFF & color;

myColor 应该没问题。

关于Android BitmapShader改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10257612/

相关文章:

android - 必填字段 html 5 不适用于 android Web 浏览器

c# - Tesseract OCR 引擎无法从自动生成的图像中读取文本,但可以从 MS Paint 中的 CUT 读取文本

c - OpenGL usampler2d值不能被除

android - 如何使用 OpenGLES 2.0 在 libgdx 的背景上实时渲染 Android 的 YUV-YV12 相机图像?

opengl - 将实时网络摄像头纹理添加到 OpenGL

android - 如何将 TableLayout 列缩小到 minWidth?

Android Studio 构建失败

android - sqlite数据库插入重复数据

java - 使用glide加载位图到ImageView

c# - GDI+ LockBits()/UnLockBits() 异常