Android:OnTouchListener的简单使用,按钮点击放大与缩小

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):

 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;
}

这里没有写滑动的操作,是因为实现按钮的放大与缩小不需要处理滑动事件

如此,就实现了点击按钮之后,按钮会放大,在松开之后,会恢复到原样

你可能感兴趣的:(Android)