Android支持点击的TouchView(可拖动视图)

本文介绍了如何在Android中创建一个既可拖动又支持点击的TouchView。通过重写onTouch事件并处理合适的触摸行为,使得在保持拖动功能的同时,能够触发点击监听。文中提供了实现这一功能的代码示例和预期效果。
摘要由CSDN通过智能技术生成

需求:

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轴位置
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值