如本文标题所示,标题并没有写实现图像半透明度 而是特意加了效果,只是因为,提到半透明度,大家想必和我一样肯定想到的是颜色值中Alpha 属性,但是自认为加上效果,说明能实现大家想要的,但是,方法不局限于alpha 属性值这一种方法。
这也是我在书里看到的,将看到的内容放到这里
解析:设置图像透明度一般可以使用Paint.setAlpha 方法,但也可以用FrameLayout 标签 通过添加图层的方式实现图像的半透明效果。
方法一、如果只是普通的ImageView 可以直接利用ImageVIew 控件的Alpha 属性在布局中进行设置(0~255 可自行调节观察效果),或者在代码中通过setAlpha 方法设置。
方法二、同方法一,但不是太明确使用场景。推测是网络下载图片时,进行的处理。使用Paint.setAlpha 方法设置图像的透明度。基本原理是先使用Bitmap对象装载图像,然后再View.onDraw方法 中使用Canvas.drawBItmap 方法将Bitmap 对象绘制到当前的view上。核心代码如下;
InputStream is = getResources().openRawResource(R.drawable.ic_home_black_24dp);
//装载图像
Bitmap bitmap = BitmapFactory.decodeStream(is);
protected void onDraw(Canvas canvas){
Paint paint = new Paint();
paint.setAlpha(180);//0 至 255
// 绘制半透明的图像
canvas.drawBitmap(bitmap,new Rect(0,0,bitmap.getWidth(),bitma