iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android控件拖动实例详解
  • 208
分享到

Android控件拖动实例详解

Android 2022-06-06 05:06:18 208人浏览 薄情痞子
摘要

Android控件拖动 Android控件的拖动,主要是通过设置控件的setOnTouchListener()方法,重写它的onTouch()方法。然后通过MotionEven

Android控件拖动

Android控件的拖动,主要是通过设置控件的setOnTouchListener()方法,重写它的onTouch()方法。然后通过MotionEvent的不同事件,进行判断,主要是在MotionEvent.ACTION_MOVE中不断重绘控件在画布中的位置,而实现拖动的效果。


public class DragViewActivity extends AppCompatActivity { 
  private Button btn_drag; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_drag_view); 
    // 获取屏幕的宽高 
    DisplayMetrics dm = getResources().getDisplayMetrics(); 
    final int screenWith = dm.widthPixels; 
    final int screenHeight = dm.heightPixels; 
    btn_drag = (Button) findViewById(R.id.btn_drag); 
    btn_drag.setOnTouchListener(new View.OnTouchListener() { 
        int lastX; 
        int lastY; 
        boolean isDraging = false; 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
        int ee = event.getAction(); 
        switch (ee){ 
          case MotionEvent.ACTION_DOWN: 
            isDraging = true; 
            lastX = (int) event.getRawX(); 
            lastY = (int) event.getRawY(); 
            break; 
          case MotionEvent.ACTION_MOVE: 
            if (isDraging){ 
              // x轴方向的位移差 
              int dx = (int) event.getRawX() - lastX; 
              // y轴方向的位移差 
              int dy = (int) event.getRawY() - lastY; 
              int l = v.getLeft() + dx; 
              int t = v.getTop() + dy; 
              int r = v.getRight() + dx; 
              int b = v.getBottom() + dy; 
              // 判断超出屏幕 
              if (l < 0){ 
                l = 0; 
                r = l + v.getWidth(); 
              } 
              if (t < 0){ 
                t = 0; 
                b = t + v.getHeight(); 
              } 
              if (r > screenWith){ 
                r = screenWith; 
                l = r - v.getWidth(); 
              } 
              if (b > screenHeight){ 
                b = screenHeight; 
                t = b - v.getHeight(); 
              } 
              // 重绘view 
              v.layout(l, t, r, b); 
              v.postInvalidate(); 
              lastX = (int) event.getRawX(); 
              lastY = (int) event.getRawY(); 
            } 
            break; 
          case MotionEvent.ACTION_UP: 
            isDraging = false; 
            break; 
          default: 
            break; 
        } 
        return false; 
      } 
    }); 
  } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android UI控件之Gallery实现拖动式图片浏览效果Android中SeekBar拖动条控件使用方法详解Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码Android基于widget组件实现物体移动/控件拖动功能示例Android 仿淘宝、京东商品详情页向上拖动查看图文详情控件DEMO详解Android使用WindowManager制作一个可拖动的控件Android编程之控件可拖动的实现方法Android如何创建可拖动的图片控件


--结束END--

本文标题: Android控件拖动实例详解

本文链接: https://www.lsjlt.com/news/22812.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现控件拖动效果
    本文实例为大家分享了Android实现控件拖动效果的具体代码,供大家参考,具体内容如下 1.今天突然想到做个实现个控件拖动效果,就来试试,一查原来还是很简单的 2.原理就是实现OnT...
    99+
    2024-04-02
  • Android怎么实现控件拖动效果
    这篇文章主要介绍“Android怎么实现控件拖动效果”,在日常操作中,相信很多人在Android怎么实现控件拖动效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android怎么实现控件拖动效果”的疑惑有所...
    99+
    2023-06-20
  • Android 控制ScrollView滚动的实例详解
    Android 控制ScrollView滚动的实例详解在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,这里有两种办法,第一种,使用scrollTo():public static void scrollToB...
    99+
    2023-05-30
    android scrollview roi
  • Android中怎么使用SeekBar拖动条控件
    本篇文章为大家展示了Android中怎么使用SeekBar拖动条控件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、简介 二、SeekBar拖动条控件使用方法创建SeekBar控件<...
    99+
    2023-05-30
    android seekbar
  • Flutter 实现任意控件拖动
    文章目录 前言一、如何实现?1、使用GestureDetector响应拖动事件2、使用Transform变换控件位置3、计算拖动区域 二、完整代码三、使用示例1、基本用法 总结 ...
    99+
    2023-09-10
    flutter 前端 dart windows android
  • Qt实现拖动单个控件移动的示例代码
    目录1.设置窗口拖拽属性2.创建初始控件3.选中控件进行拖动3.1响应mousePressEvent事件3.2判断控件拖动3.3事件处理3.4结束拖动做惯了静态图,今天来搞一搞动态图...
    99+
    2024-04-02
  • 基于C# wpf 实现Grid内控件拖动详情
    目录一、如何实现?1.注册鼠标事件2.记录位置3.跟随鼠标移动4.恢复标识二、示例前言: 有一些业务场景中我们需要拖动控件,在Grid中就可以实现控件拖动,通过设置Margin属性即...
    99+
    2024-04-02
  • Android开发自定义双向SeekBar拖动条控件
    目录目标:双向拖动的自定义View实现步骤自定义属性获取确定自定义view尺寸绘制相关的内容部分滑动事件处理目标:双向拖动的自定义View 国际惯例先预览后实现 我们要实现的就是一...
    99+
    2024-04-02
  • Android自定义view实现滚动选择控件详解
    目录前言需求编写代码主要问题前言 上篇文章通过一个有header和footer的滚动控件(Viewgroup)学了下MeasureSpec、onMeasure以及onLayout,接...
    99+
    2022-11-13
    Android滚动选择 Android滚动选择控件 Android自定义view
  • C#wpfCanvas中实现控件拖动调整大小的示例
    目录前言一、功能说明二、如何实现?1.继承Adorner2.使用Thumb3.实现拖动逻辑三、完整代码四、使用示例总结前言 我们做图片编辑工具、视频编辑工具、或者画板有时需要实现控件...
    99+
    2022-11-13
    C# wpf Canvas拖动 C# wpf Canvas
  • winform如何实现控件自由拖动
    在WinForm中,可以通过以下步骤实现控件自由拖动:1. 在控件上按下鼠标左键时,记录鼠标相对于控件左上角的位置。```cshar...
    99+
    2023-09-13
    winform
  • Android中SeekBar拖动条使用方法详解
    本文实例为大家分享了Android中SeekBar拖动条使用方法的具体代码,供大家参考,具体内容如下 SeekBar控件效果展示  拖动条SeekBar继承了Progre...
    99+
    2024-04-02
  • Android ListView里控件添加监听方法的实例详解
    Android ListView里控件添加监听方法的实例详解 关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天...
    99+
    2023-05-30
    android listview 监听
  • Android跨应用启动实例详解
    Android跨应用启动前言:相信大家,很多时候都是在自己的应用中,启动自己写的Activity,Service、BroadcastReceiver、contentProvider 。换句话说,这些都只是 * 单个应用中 组件间 * 的启动...
    99+
    2023-05-31
    android 跨应用 roi
  • Android自定义滑动解锁控件使用详解
    最近的项目里用到了,在网上找不到合适的,于是自己写了个简单的,带回弹效果:可以自定义的属性有:<!-- 滑动解锁控件 xml配置属性 --><declare-styleable name="SlideToUnlockVie...
    99+
    2023-05-30
    android 滑动解锁 roi
  • Android滚动菜单ListView实例详解
    本文实例为大家分享了Android使用ListView实现滚动菜单的具体代码,供大家参考,具体内容如下 说明:滚动菜单ListView及点击事件 代码结构: 1、创建一个list展示...
    99+
    2024-04-02
  • Android跟随手指移动的控件demo实例
    目录前言第一步第二步:第三步:第四步第五步前言 事实上,软件工程的多数苦恼不是源自缺少工具或管理不当,而是因为技术能力本身的缺乏。 今天给大家分享跟随手指移动的控件,demo展示如下...
    99+
    2024-04-02
  • Android 滑动监听的实例详解
    Android 滑动监听的实例详解摘要: ScollBy,ScollTo是对内容的移动,view.ScollyBy是对view的内容的移动 view,ScollTo是对内容的移动(移动到指定位置),view.ScollyBy是对v...
    99+
    2023-05-30
    android 滑动 roi
  • Android 之Preference控件基本使用示例详解
    目录简述主要成分主要方法基本示例简述 Preference是Android的控件之一,相对来说我们用的比较少,但在系统应用的Settings设置应用模块中大部分由Preference...
    99+
    2022-12-22
    Android Preference控件 Android Preference
  • Android开发手册SeekBar拖动条使用实例
    目录实践过程常用属性基本使用自定义样式实践过程 常用属性 因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用。 【andr...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作