ThumbnailView.java
2.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.xdy.ui.imageview;
import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;
/**
* @author 蒋洪波
* @file ThumbnailView.java
* @brief 按下有反应的ImageView
* @date 2017-6-10
* Copyright (c) 2017
* All rights reserved.
*/
public class ThumbnailView extends ImageView {
public ThumbnailView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
//在按下事件中设置滤镜
setFilter();
break;
case MotionEvent.ACTION_UP:
//由于捕获了Touch事件,需要手动触发Click事件
// performClick();
case MotionEvent.ACTION_CANCEL:
//在CANCEL和UP事件中清除滤镜
removeFilter();
break;
default:
break;
}
return super.onTouchEvent(event);
}
/**
* 设置滤镜
*/
private void setFilter() {
//先获取设置的src图片
Drawable drawable = getDrawable();
//当src图片为Null,获取背景图片
if (drawable == null) {
drawable = getBackground();
}
if (drawable != null) {
//设置滤镜
drawable.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
}
}
/**
* 清除滤镜
*/
private void removeFilter() {
//先获取设置的src图片
Drawable drawable = getDrawable();
//当src图片为Null,获取背景图片
if (drawable == null) {
drawable = getBackground();
}
if (drawable != null) {
//清除滤镜
drawable.clearColorFilter();
}
}
}