按压效果一般都是使用selector ,不过当界面里面文字内容比较多的时候 感觉有点麻烦
下面记录一个onTouch 使用按压效果
一般的写法
view.setOnTouchListener((view, motionEvent) -> {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
view.setAlpha(0.4f);
} else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
view.setAlpha(1.0f);
}
return false;
});
如果一个一个写感觉有点麻烦,下面是一个简单的静态方法
public class PressUtils {
public static void setPressChange(Context context, View... views) {
for (View view : views) {
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setAlpha(0.4f);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_OUTSIDE:
v.setAlpha(1.0f);
break;
}
return false;
}
});
}
}
}
使用方法
PressUtils.setPressChange(this, view); 一个view 按压效果 PressUtils.setPressChange(this,view,view1); 点击一个view 2个同时有按压效果