如何在Android上为imageView设置动态渐变色调

时间:2018-04-06 11:16:30

标签: java android android-imageview

在我的应用程序中,我想动态渐变颜色设置为imageView 我可以使用以下代码设置纯色:

imageView.setColorFilter(ContextCompat.getColor(context, R.color.grayColor),
                         android.graphics.PorterDuff.Mode.MULTIPLY);

但我想设置渐变色而不是纯色

我该怎么做?

1 个答案:

答案 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;
    }