----- 代碼
① 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實現圖層疊加
傳送門 點擊打開鏈接