BitmapFactory.Options&bitmap加灰色遮罩

该博客探讨了如何正确使用BitmapFactory.Options来仅读取图片尺寸,并展示了给Bitmap添加灰色遮罩的方法,包括两种不同的实现思路。还提供了未加灰色遮罩的代码效果对比,并链接到关于bitmap和canvas实现图层叠加的最新博客。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----- 代码

① BitmapFactory.Options仅读取图片的尺寸参数的正确使用姿势


② 给bitmap加灰色遮罩

private void draw2layer(ImageView imageViewBlur2) {

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(getResources(), R.drawable.icon, options);
        int outWidth = options.outWidth;
        int outHeight = options.outHeight;

        Log.i(tag, "draw2layer: outWidth = " + outWidth + " ; outHeoght = " + outHeight);

        Bitmap bitmap = Bitmap.createBitmap(outWidth, outHeight, Bitmap.Config.RGB_565);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.icon, null), 0, 0, null);
        Canvas canvas1 = new Canvas(bitmap);
        canvas1.drawColor(0x33000000);
        imageViewBlur2.setImageBitmap(bitmap);
    }

----- 效果展示


-------未加灰色遮罩代码


        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(getResources(), R.drawable.icon, options);
        int outWidth = options.outWidth;
        int outHeight = options.outHeight;

        Log.i(tag, "draw2layer: outWidth = " + outWidth + " ; outHeoght = " + outHeight);

        Bitmap bitmap = Bitmap.createBitmap(outWidth, outHeight, Bitmap.Config.RGB_565);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.icon, null), 0, 0, null);
        imageView.setImageBitmap(bitmap);

----- 实现灰色遮罩的另外一种思路

最新blog:bitmap和canvas实现图层叠加

传送门 点击打开链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值