Android-如何将渐变颜色应用于位图?

时间:2018-09-11 20:59:26

标签: android colors bitmap gradient

我需要动态地将渐变色应用于位图(看起来像带有一些透明部分的划痕),该颜色将绘制在另一个位图上:this is the result i need

这是我的代码:

Bitmap bitmapbackground = bitmaporiginal.copy(bitmaporiginal.getConfig(), true);

Bitmap bitmaptocolor = BitmapFactory.decodeResource(activity.getResources(), R.drawable.scratch);

LinearGradient gradient = new LinearGradient(0, 0, 0, bitmaptocolor.getHeight(), Color.parseColor("#D81B60"), Color.parseColor("#F48FB1"), Shader.TileMode.CLAMP);

Paint paint = new Paint();
paint.setShader(gradient);

Canvas canvas = new Canvas(bitmapbackground);
canvas.drawBitmap(bitmaptocolor, 0, 0, paint);

但是,这样就不会将渐变颜色应用于划痕(始终保持黑色)。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

确保bitmaptocolor.getHeight()实际上正在返回高度。

使用十六进制等效颜色。

LinearGradient gradient = new LinearGradient(0, 0, 0, bitmaptocolor.getHeight(), 0xD81B60, 0xD81B60, Shader.TileMode.CLAMP);