ImageView背景色变暗的处理

     在一些需求中,需要将ImageView的背景色变暗从而突出其他的view,类似于dialog的效果,如果仅仅是通过设置背景色的alpha是不能够达到这种效果的,如下图:

ImageView背景色变暗的处理_第1张图片

 这个时候还是需要运用canvas的画图功能,可以在canvas已有的图片基础上设置画笔的alpha,绘制一个矩形蒙板就可以达到该种效果:

private Bitmap getDarker(Drawable d){
		BitmapDrawable drawable =(BitmapDrawable)d;
		Bitmap origin = drawable.getBitmap();
		int width = origin.getWidth();
		int height = origin.getHeight();
	    Bitmap background =Bitmap.createBitmap(width, height, Config.ARGB_8888);
	    Canvas canvas=new Canvas(background);
	    canvas.drawBitmap(origin, 0, 0, new Paint());
	    Paint p1=new Paint();
	    p1.setAlpha(75);
	    canvas.drawRect(0, 0, width, height, p1);
		return background;
	}

实现效果如下:

ImageView背景色变暗的处理_第2张图片

你可能感兴趣的:(android,canvas,imageview)