我需要动态地将渐变色应用于位图(看起来像带有一些透明部分的划痕),该颜色将绘制在另一个位图上: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);
但是,这样就不会将渐变颜色应用于划痕(始终保持黑色)。我在做什么错了?
答案 0 :(得分:0)
确保bitmaptocolor.getHeight()
实际上正在返回高度。
使用十六进制等效颜色。
LinearGradient gradient = new LinearGradient(0, 0, 0, bitmaptocolor.getHeight(), 0xD81B60, 0xD81B60, Shader.TileMode.CLAMP);