1.较好的办法(特别适用于亮度渐变效果):
//改变图片的亮度方法 0--原样 >0---调亮 <0---调暗
private void changeLight(ImageView imageView, int brightness) {
ColorMatrix cMatrix = new ColorMatrix();
cMatrix.set(new float[] { 1, 0, 0, 0, brightness, 0, 1, 0, 0, brightness, // 改变亮度
0, 0, 1, 0, brightness, 0, 0, 0, 1, 0 });
imageView.setColorFilter(new ColorMatrixColorFilter(cMatrix));
}
引用自:
http://www.jb51.net/article/78163.htm
2.另一种方法:
/**
* 设置滤镜
*/
private void setFilter(ImageView imageView) {
//先获取设置的src图片
Drawable drawable=imageView.getDrawable();
//当src图片为Null,获取背景图片
if (drawable==null) {
drawable=getBackground();
}
if(drawable!=null){
//设置滤镜
drawable.setColorFilter(filterColor,PorterDuff.Mode.DARKEN);;
}
}
/**
* 清除滤镜
*/
private void removeFilter(ImageView imageView) {
//先获取设置的src图片
Drawable drawable=imageView.getDrawable();
//当src图片为Null,获取背景图片
if (drawable==null) {
drawable=getBackground();
}
if(drawable!=null){
//清除滤镜
drawable.clearColorFilter();
}
}