【Android】OnTouchListener的簡單使用,按鈕點選放大與縮小

4張A發表於2016-03-28

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

這裡沒有寫滑動的操作,是因為實現按鈕的放大與縮小不需要處理滑動事件

如此,就實現了點選按鈕之後,按鈕會放大,在鬆開之後,會恢復到原樣





相關文章