android ImageView亮度变化


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();
        }
    }