android如何实现图像半透明度效果

        如本文标题所示,标题并没有写实现图像半透明度 而是特意加了效果,只是因为,提到半透明度,大家想必和我一样肯定想到的是颜色值中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(),bitmap.getHeight()),
                new Rect(0,0,bitmap.getWidth(),bitmap.getHeight()),paint);
}

 

方法三、可以在不透明的图像上覆盖一层半透明的膜(可以用半透明的ImageView实现)。布局代码如下:



        
        
        
        


 

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class TETActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tet);
        ImageView imageView = findViewById(R.id.iv0001);
        ImageView imageView1 = findViewById(R.id.iv0002);
    }
}

如上,实现效果如下

android如何实现图像半透明度效果_第1张图片

原图为

android如何实现图像半透明度效果_第2张图片

你可能感兴趣的:(Android)