在我的应用程序中,我想动态渐变颜色设置为imageView
我可以使用以下代码设置纯色:
imageView.setColorFilter(ContextCompat.getColor(context, R.color.grayColor),
android.graphics.PorterDuff.Mode.MULTIPLY);
但我想设置渐变色而不是纯色。
我该怎么做?
答案 0 :(得分:1)
获取位图后可以使用此方法
public Bitmap setGradientBackground(Bitmap originalBitmap) {
int width = originalBitmap.getWidth();
int height = originalBitmap.getHeight();
Bitmap updatedBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(updatedBitmap);
canvas.drawBitmap(originalBitmap, 0, 0, null);
Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0, 0, 0, height, 0xFFF0D252, 0xFFF07305, Shader.TileMode.CLAMP);
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawRect(0, 0, width, height, paint);
return updatedBitmap;
}