OnTouchListene是用来监听手机屏幕事件的监听,用来处理按下,抬起,滑动等动作
具体的有3中情况:UP抬起 DOWN按下 MOVE滑动
使用:
在Activity中,实现OnTouchListener 接口,重写 onTouch方法,为需要的控件setOnTouchListener
最后可以根据ID的不同,对不同的控件按下,抬起,滑动事件做不同的处理
通常在设计UI界面时,为了用户体验更好,通常在用户按下某个控件之后会有相应的小范围变大效果,在弹起之后,会恢复原样,这里可以用OnTouchListener 与动画共同实现
①自定义动画效果,按下和抬起分别执行两个不同的动画
按下时的动画(scale):
android:fromXScale="100%" android:toXScale="110%" android:fromYScale="100%" android:toYScale="110%" android:pivotX="50%" android:pivotY="50%" android:fillAfter="true"
弹起时的动画(scale):
1. android:fromXScale="110%" android:toXScale="100%" android:fromYScale="110%" android:toYScale="100%" android:pivotX="50%" android:pivotY="50%" android:fillAfter="true"
②实现OnTouchListener 接口,为相应的按钮添加点击事件
ib_main_drag.setOnTouchListener(this);
③重写onTouch()方法,执行相应的业务,为按钮应用上动画
public boolean onTouch(View view, MotionEvent event) { //按下操作 if(event.getAction()==MotionEvent.ACTION_DOWN){ animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.but_scale_down); view.startAnimation(animation); } //抬起操作 if(event.getAction()==MotionEvent.ACTION_UP){ animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.but_scale_up); view.startAnimation(animation); } //移动操作 if(event.getAction()==MotionEvent.ACTION_MOVE){ } return false; }
这里没有写滑动的操作,是因为实现按钮的放大与缩小不需要处理滑动事件
如此,就实现了点击按钮之后,按钮会放大,在松开之后,会恢复到原样