显示透明图片的方法汇总
方法1:用Canvas的drawARGB方法。
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建一张图片。
Bitmap bm = Bitmap.createBitmap(20, 20, Config.ARGB_4444);
//给图片绘制颜色,其中第一个参数为透明度设置。
Canvas cvs = new Canvas(bm);
cvs.drawARGB(127,255,0,0);
//创建ImageView对象。
ImageView imv = new ImageView(this);
//将图片加载到ImageView对象中。
imv.setImageBitmap(bm);
//在屏幕上显示该图片。
setContentView(imv);
}
方法2:用Canvas的drawARGB和Bitmap的eraseColor。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建一张图片。
Bitmap bm = Bitmap.createBitmap(20, 20, Config.ARGB_4444);
//给图片绘制颜色,其中第一个参数为透明度设置。
Canvas cvs = new Canvas(bm);
cvs.drawARGB(127,255,0,0);
//用Bitmap自带的方法擦除刚着上的红色后也是透明的。
bm.eraseColor(0xff0000);
//创建ImageView对象。
ImageView imv = new ImageView(this);
//将图片加载到ImageView对象中。
imv.setImageBitmap(bm);
//在屏幕上显示该图片。
setContentView(imv);
}
方法3:用ImageView的setAlpha方法。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建一张图片。
Bitmap bm = Bitmap.createBitmap(20, 20, Config.ARGB_4444);
//给图片绘制颜色,其中第一个参数为透明度设置。
Canvas cvs = new Canvas(bm);
cvs.drawARGB(255,255,0,0);
//创建ImageView对象。
ImageView imv = new ImageView(this);
//将图片加载到ImageView对象中。
imv.setImageBitmap(bm);
//设置图片的透明度。
imv.setAlpha(127);
//在屏幕上显示该图片。
setContentView(imv);
}
方法4:使用Drawable的getPaint().setColor方法。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建一张图片。
Bitmap bm = Bitmap.createBitmap(20, 20, Config.ARGB_4444);
//给图片着上红颜。
Canvas cvs = new Canvas(bm);
cvs.drawARGB(255,255,0,0);
//创建ImageView。
ImageView imv = new ImageView(this);
//设置图片透明度,前两位是透明度的值。
BitmapDrawable bd = new BitmapDrawable(bm);
bd.getPaint().setColor(0x00ffffff);
//将图片加载到ImageView对象中。
imv.setImageBitmap(bm);
//在屏幕上显示该图片。
setContentView(imv);
}
注:暂时就找到了这4种,如果我找到新的方法会再编辑这篇文章。