Android自定义View实现随手势滑动控件

发布时间 - 2026-01-10 23:08:00    点击率:

本文控件为大家分享了Android随手势滑动控件的具体代码,供大家参考,具体内容如下

1.新建自定义控件类:MyView

public class MyView extends Button{
//记录上次滑动后的坐标值
private int lastX;
private int lastY;

public MyView(Context context) {
  super(context);
  // TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs){

  super(context, attrs);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
  // 获取view相对于手机屏幕的xy值
  int x=(int) event.getRawX();
  int y=(int) event.getRawY();
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

      break;
    case MotionEvent.ACTION_MOVE:
      int deltaX=x-lastX;
      int deltaY=y-lastY;
      int translationX = (int) (ViewHelper.getTranslationX(this) + deltaX);
      int translationY = (int) (ViewHelper.getTranslationY(this) + deltaY);
      ViewHelper.setTranslationX(this,translationX);
      ViewHelper.setTranslationY(this,translationY);

      break;
    case MotionEvent.ACTION_UP:
      break;
    default:
      break;
  }
  lastX = x;
  lastY = y;
  return true;
}

上面代码就是一个自定义按钮类,重写onTouchEvent()方法来监听用户滑动,既然说到滑动肯定会存在偏移量的说法。

translationX、translationY是View左上角相对于父布局的偏移量。通过第三方nineoldandroids来实现动画滑动。

ViewHelper.getTranslationY(this)计算该View的偏移量,初始值为0,向左偏移值为负,向右偏移值为正。

2.xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
>

 <com.example.administrator.slide.MyView
   android:id="@+id/myview"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="我可以滑动"/>

</RelativeLayout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android随手势滑动控件  # Android手势滑动控件  # Android自定义View随手势滑动控件  # Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果  # Android实现图片自动轮播并且支持手势左右无限滑动  # Android实现手势滑动和简单动画效果  # Android实现手势滑动多点触摸放大缩小图片效果  # Android手势滑动实现ImageView缩放图片大小  # Android GestureDetector手势滑动使用实例讲解  # android中view手势滑动冲突的解决方法  # Android实现手势滑动多点触摸缩放平移图片效果  # Android实现手势滑动多点触摸缩放平移图片效果(二)  # Android获取触摸手势实现左右滑动  # 值为  # 自定义  # 偏移量  # 相对于  # 说到  # 重写  # 第三方  # 大家分享  # 来实现  # 方法来  # 具体内容  # 大家多多  # 肯定会  # 坐标值  # getAction  # stub  # onTouchEvent  # ACTION_DOWN  # case  # AttributeSet 


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


相关推荐: 百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  javascript中闭包概念与用法深入理解  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  微信推文制作网站有哪些,怎么做微信推文,急?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Android GridView 滑动条设置一直显示状态(推荐)  Laravel如何实现事件和监听器?(Event & Listener实战)  JavaScript实现Fly Bird小游戏  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何在Windows 2008云服务器安全搭建网站?  Laravel distinct去重查询_Laravel Eloquent去重方法  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Android Socket接口实现即时通讯实例代码  如何解决hover在ie6中的兼容性问题  Laravel如何实现文件上传和存储?(本地与S3配置)  详解Android——蓝牙技术 带你实现终端间数据传输  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  音响网站制作视频教程,隆霸音响官方网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Angular 表单中正确绑定输入值以确保提交与验证正常工作  如何挑选高效建站主机与优质域名?  如何快速配置高效服务器建站软件?  在线教育网站制作平台,山西立德教育官网?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  香港服务器租用费用高吗?如何避免常见误区?  实例解析Array和String方法  怎么用AI帮你设计一套个性化的手机App图标?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Python正则表达式进阶教程_复杂匹配与分组替换解析  微信公众帐号开发教程之图文消息全攻略  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Java类加载基本过程详细介绍  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  如何用VPS主机快速搭建个人网站?  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  5种Android数据存储方式汇总  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  EditPlus 正则表达式 实战(3)