需求:
1、一个可以拖动的view。
2、该view可以通过setOnClickListener设置点击监听。
解决思路:
可拖动视图就必须重写onTouch事件,但是重写onTouch事件,点击事件肯定会被过滤。所以,需要我们自己再处理一下,把符合条件的onTouch事件转化成点击事件。
需求和解决思路都出来了,那代码就很好实现了,我们先来看一下效果图。
上最主要的代码:(一会还有DEMO)
package com.milo.widget; import android.content.Context; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Button; /** * 支持点击事件的可拖动视图 * The view can touch and support click event * * @author Milo * Email:303767416@qq.com * @version 2018/4/20 */ public class TouchView extends View { private static final String TAG = "TouchView"; /** * 记录X轴最后位置 */ int lastX = 0; /** * 记录Y轴最后位置 */ int lastY = 0; /** * 记录Action_Down - X轴位置