提供android的UI体验度

来源:互联网 发布:比较有名的网络女歌手 编辑:程序博客网 时间:2024/06/05 06:53

android,体验UI的流畅度,就是一个小的思路就是可以跟带点击事件的设置一层布局,在里面重写分发事件,当字view快速,重复点击的时候,给过滤掉,防止重复处理事情。

package huofeng.com.tochsimaple.utils;import android.content.Context;import android.os.SystemClock;import android.support.annotation.NonNull;import android.util.AttributeSet;import android.util.Log;import android.view.KeyEvent;import android.view.MotionEvent;import android.widget.LinearLayout;public class AGLinearLayout extends LinearLayout {    private static final int DEFAULT_TOUCH_TIMESTAMP = -1; // first time    private static final int TOUCH_COOL_DOWN_TIME = 500; // ms    private static long mLastTouchTime = DEFAULT_TOUCH_TIMESTAMP;    public AGLinearLayout(Context context) {        super(context);    }    public AGLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public AGLinearLayout(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    public boolean onTouchEvent(MotionEvent event) {        Log.e("aaa", "aaaaaaaaaaa");        return super.onTouchEvent(event);    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (event.getAction() == KeyEvent.ACTION_DOWN) {            Log.e("aaa", "11111111111111");            return true;        }        return super.onKeyDown(keyCode, event);    }    @Override    public boolean dispatchTouchEvent(@NonNull MotionEvent event) {        if (event.getAction() == KeyEvent.ACTION_DOWN) {            if (mLastTouchTime == DEFAULT_TOUCH_TIMESTAMP || (SystemClock.elapsedRealtime() - mLastTouchTime) > TOUCH_COOL_DOWN_TIME) {                mLastTouchTime = SystemClock.elapsedRealtime();                //根据上次的down事件的时间,来区分,是不是多次点击,是的话,返回true,直接处理            } else {                Log.e("aaa", "bbbbbbbbbbbbbbbbbbbbbb");                return true;            }        }        return super.dispatchTouchEvent(event);    }    @Override    public boolean dispatchKeyEvent(@NonNull KeyEvent event) {        if (event.getAction() == KeyEvent.ACTION_DOWN) {            Log.e("aaa", "222222222");            //这里面也要写,根据时间的间隔来区分            return true;        }        return super.dispatchKeyEvent(event);    }}
0 0
原创粉丝点击