分类分类
2015-07-08 11:05作者:zhao
在一些需求中,需要将ImageView的背景色变暗从而突出其他的view,类似于dialog的效果,如果仅仅是通过设置背景色的alpha是不能够达到这种效果的,如下图:
这个时候还是需要运用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;
}
实现效果如下:
相关