Android实现View拖拽跟随手指移动效果

发布时间 - 2026-01-11 02:53:38    点击率:

今天想实现这个功能,但是网上搜索代码,都是利用setPadding,setMargin 等方法去实现的,这在Android 4.0 以前是没问题的,但是,android 4.0 后系统已经提供了更简单的方法给我们用了,就是setTranslationX() setTranslationY() 。这两个是View的属性方法。现在我就用这两个方法实现一个View可以跟着手指移动拖拽的效果。代码非常非常简单:

public class DragView extends TextView { 
  float moveX; 
  float moveY; 
  public DragView(Context context) { 
    super(context); 
  } 
  public DragView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
  } 
  @Override 
  public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
        moveX = event.getX(); 
        moveY = event.getY(); 
        break; 
      case MotionEvent.ACTION_MOVE: 
        setTranslationX(getX() + (event.getX() - moveX)); 
        setTranslationY(getY() + (event.getY() - moveY)); 
        break; 
      case MotionEvent.ACTION_UP: 
        break; 
      case MotionEvent.ACTION_CANCEL: 
        break; 
    } 
    return true; 
  } 
} 

总结

以上所述是小编给大家介绍的Android实现View拖拽跟随手指移动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # view跟随手指移动  # view  # 拖拽  # Android跟随手指移动的控件demo实例  # Android自定义View实现跟随手指移动的小兔子  # Android绘制跟随手指移动的小球  # Android自定义圆形View实现小球跟随手指移动效果  # Android实现拖动小球跟随手指移动效果  # Android中View跟随手指移动效果  # Android View移动的六种方法小结  # Android View移动的3种方式总结  # Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决方法  # Android自定义View实现跟随手指移动  # 这两个  # 小编  # 都是  # 在此  # 给我们  # 用了  # 给大家  # 就用  # 这在  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 网上  # true  # return 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: node.js报错:Cannot find module 'ejs'的解决办法  Swift开发中switch语句值绑定模式  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel如何保护应用免受CSRF攻击?(原理和示例)  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在橙子建站中快速调整背景颜色?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  大同网页,大同瑞慈医院官网?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何快速搭建高效香港服务器网站?  JavaScript如何实现错误处理_try...catch如何捕获异常?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  清除minerd进程的简单方法  如何在IIS服务器上快速部署高效网站?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何与Pusher实现实时通信?(WebSocket示例)  javascript中闭包概念与用法深入理解  公司门户网站制作流程,华为官网怎么做?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Thinkphp 中 distinct 的用法解析  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel怎么连接多个数据库_Laravel多数据库连接配置  重庆市网站制作公司,重庆招聘网站哪个好?  制作旅游网站html,怎样注册旅游网站?  如何基于云服务器快速搭建网站及云盘系统?  QQ浏览器网页版登录入口 个人中心在线进入  Swift中switch语句区间和元组模式匹配  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  用yum安装MySQLdb模块的步骤方法  浅述节点的创建及常见功能的实现  5种Android数据存储方式汇总  百度浏览器如何管理插件 百度浏览器插件管理方法  魔方云NAT建站如何实现端口转发?  EditPlus中的正则表达式实战(6)  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  企业网站制作这些问题要关注  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  JavaScript如何实现继承_有哪些常用方法  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Laravel如何创建自定义Facades?(详细步骤)