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

仿微信朋友圈图片按下效果

2015-12-25 11:24 543 查看
在玩微信朋友圈时,发现每个图片的按下后,图片都会有一个变暗的效果,当时一想,做个selector应该就可以了,可是你每一张图片都是服务器拉取的,怎么去做selector,那在按下的时候我给每一张图片都加一个蒙层呢,是不是也可以解决,可是这个办法也太低端了。有什么别的办法吗?我直接去操作图片,让图片的颜色变暗就行了·····

自定义了一个图片的控件,别的不说 贴代码:

package com.huawei.pictureclick;

import android.content.Context;
import android.graphics.ColorMatrixColorFilter;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;

public class DarkImageView extends ImageView {

/**
* 选中时,图片的颜色矩阵,将每个颜色值的色度降低50,达到图片变暗的效果
*/
public final float[] BT_SELECTED = new float[] {
1, 0, 0, 0,-50,
0, 1, 0, 0, -50,
0, 0, 1, 0, -50,
0, 0, 0, 1, 0 };

/**
* 未选中时,将图片的颜色值还原
*/
public final float[] BT_NOT_SELECTED = new float[] {
1, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0 };

public DarkImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}

public DarkImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public DarkImageView(Context context) {
super(context);
init();
}

private void init() {
this.setClickable(true);
}

/**
* 重写onTouchEvent方法,当手指在按下后,图片变暗,当手指抬起时,图片回复原样并响应自己的点击事件
*/
@Override
public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
this.setColorFilter( new ColorMatrixColorFilter(BT_SELECTED) ) ;
break;
case MotionEvent.ACTION_MOVE:
this.setColorFilter( new ColorMatrixColorFilter(BT_SELECTED) ) ;
break;
case MotionEvent.ACTION_UP:
this.setColorFilter( new ColorMatrixColorFilter(BT_NOT_SELECTED) ) ;
if(picClickListener != null){
picClickListener.click();
}
break;

default:
break;
}
return true;
}

private OnPicClickListener picClickListener;
public interface OnPicClickListener{
void click();
}
public OnPicClickListener getPicClickListener() {
return picClickListener;
}

public void setPicClickListener(OnPicClickListener picClickListener) {
this.picClickListener = picClickListener;
}

}


代码很简单,在使用中就是普通ImageView控件的使用,也可以给他设置点击事件,后面如何使用的代码就没必要写了。PS:感谢同学贾我斌的贡献
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: