您的位置:首页 > 移动开发 > Android开发

Android开发:ImageView滤镜效果

2013-11-27 16:02 363 查看
ImageView滤镜效果常见的应用情形:


(表格空间中,单个表格内容)

1、gridview表格控件,每个表格中使用自定义内容(比如textview+imageview)取消gridview点击黄色背景效果,实现点击每个表格imageview变暗,而textveiw不变的点击效果

解决方法:在adapter对gridview加载数据的时候,对imageview添加点击事件,点击事件中添加imageview的滤镜效果

{用设置图片对象的ColorFilter属性,把ColorMatrixColorFilter设置灰度通道,传递到ColorFilter属性中

重视两点:1 图片滤镜结果,只是在图层上方 加了一层结果,不是对图片的实际批改

2 若是对单个图片加滤镜结果后,其他处所应用到这个图片也会变成带滤镜结果。
}
示例代码如下:

1、adapter 中getview方法中添加代码如下:

holder.mFeatureImage.setImageResource(id);

//设置图片点击滤镜效果

holder.mFeatureImage.setOnTouchListener(mOnTouchListener);

2、定义对应的点击事件效果,代码如下

private OnTouchListener mOnTouchListener = new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

changeLight((ImageView)v ,-80);

break;

case MotionEvent.ACTION_MOVE:

changeLight((ImageView)v ,0);

break;

case MotionEvent.ACTION_UP:

changeLight((ImageView)v ,0);

break;

default:

break;

}

return true;

}

};

函数:

private void changeLight(ImageView imageview, int brightness) {
ColorMatrix matrix = new ColorMatrix();
matrix.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(matrix));

}

方法二:通过setColorFilter 实现滤镜效果(参数含义,参考http://blog.sina.com.cn/s/blog_5da93c8f01012pkj.html

Drawable drawable = imgs.get(i);

drawable.setColorFilter(Color.GRAY,PorterDuff.Mode.MULTIPLY);//注意是对图片设置滤镜,而不是控件

iv.setImageDrawable(drawable);

在ontouchlistener 中,抬起状态去掉滤镜效果即可

drawable.clearColorFilter();

参考其它作者内容:

http://my.eoe.cn/wgblwss/archive/15797.html

/article/3446570.html

http://www.byywee.com/page/M0/S746/746283.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: