Android改变图片透明度的方法
2016-01-03 21:19
513 查看
两种思路,第一种思路是通过对Bitmap进行操作,将Bitmap的像素值get到一个int[]数组里,因为在android里Bitmap通常是ARGB8888格式,所以最高位就是A通道的值,对齐进行改变后再新建一个Bitmap即可。第二种思路是通过设置canvas的paint的透明度,然后通过canvas.drawBitmap()来改变View的透明度。具体代码如下:
第一种思路:
public static Bitmap getTransparentBitmap(Bitmap sourceImg, int number){
int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()];
sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0, sourceImg
.getWidth(), sourceImg.getHeight());// 获得图片的ARGB值
number = number * 255 / 100;
for (int i = 0; i < argb.length; i++) {
argb[i] = (number << 24) | (argb[i] & 0x00FFFFFF);
}
sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg
.getHeight(), Bitmap.Config.ARGB_8888);
return sourceImg;
}
第二种思路:
第一种思路:
public static Bitmap getTransparentBitmap(Bitmap sourceImg, int number){
int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()];
sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0, sourceImg
.getWidth(), sourceImg.getHeight());// 获得图片的ARGB值
number = number * 255 / 100;
for (int i = 0; i < argb.length; i++) {
argb[i] = (number << 24) | (argb[i] & 0x00FFFFFF);
}
sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg
.getHeight(), Bitmap.Config.ARGB_8888);
return sourceImg;
}
第二种思路:
相关文章推荐
- Android中TextView中各个位置划线的代码
- NDK Android* 应用移植方法
- Android 开发之获取相册照片和获取拍照照片
- Android View(三)-MeasureSpec详解
- 对Android中广播的理解
- android端和web端通信中文乱码问题
- Android设置透明、半透明等效果
- Android设置按钮为透明
- Android Button置于上层
- android编程中怎么将一个按钮置于最上层
- 解决 appt getting 'android:icon' attribute: attribu
- 学习Android从0开始之基础篇(2)-AndroidMainfest.xml文件详解
- Android动画基本使用
- Android 中shape 的常用属性
- Android DiskLruCache缓存完全解析
- Android Support Design Library之TextInputLayout
- android 5.0 下载编译
- 关于Android中的ViewTreeObserver
- (转)Android新的menu实现——ActionMode
- Android Intent.action 大全