`
xusaomaiss
  • 浏览: 615460 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

实现拖动效果

阅读更多

http://www.roiding.com/index.php/archives/211

废话少说,要实现的效果就是在界面上拖动这一个按钮到处跑。

1. 布局文件

  1. <? xml   version = "1.0"   encoding = "utf-8" ?>  
  2. < LinearLayout   xmlns:android = "http://schemas.android.com/apk/res/android"  
  3. android:orientation = "vertical"   android:layout_width = "fill_parent"  
  4. android:layout_height = "fill_parent" >  
  5. < Button   android:id = "@+id/btn_hello"   android:layout_width = "fill_parent"  
  6. android:layout_height = "wrap_content"   android:text = "@string/hello"   />  
  7. </ LinearLayout >  
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/btn_hello" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>

2. 代码

  1. package  com.roiding.sample; 
  2.  
  3. import  android.app.Activity; 
  4. import  android.os.Bundle; 
  5. import  android.util.Log; 
  6. import  android.view.MotionEvent; 
  7. import  android.view.View; 
  8. import  android.view.View.OnTouchListener; 
  9. import  android.widget.Button; 
  10.  
  11. public   class  Touch  extends  Activity { 
  12. /** Called when the activity is first created. */  
  13. @Override  
  14. public   void  onCreate(Bundle savedInstanceState) { 
  15. super .onCreate(savedInstanceState); 
  16. setContentView(R.layout.main); 
  17.  
  18. final  Button btn = (Button) findViewById(R.id.btn_hello); 
  19.  
  20. btn.setOnTouchListener(new  OnTouchListener() { 
  21. int [] temp =  new   int [] {  0 0  }; 
  22.  
  23. public   boolean  onTouch(View v, MotionEvent event) { 
  24.  
  25. int  eventaction = event.getAction(); 
  26. Log.i("&&&" "onTouchEvent:"  + eventaction); 
  27.  
  28. int  x = ( int ) event.getRawX(); 
  29. int  y = ( int ) event.getRawY(); 
  30.  
  31. switch  (eventaction) { 
  32.  
  33. case  MotionEvent.ACTION_DOWN:  // touch down so check if the  
  34. temp[0 ] = ( int ) event.getX(); 
  35. temp[1 ] = y - v.getTop(); 
  36. break
  37.  
  38. case  MotionEvent.ACTION_MOVE:  // touch drag with the ball  
  39. v.layout(x - temp[0 ], y - temp[ 1 ], x + v.getWidth() 
  40. - temp[0 ], y - temp[ 1 ] + v.getHeight()); 
  41.  
  42. v.postInvalidate(); 
  43. break
  44.  
  45. case  MotionEvent.ACTION_UP: 
  46. break
  47.  
  48. return   false
  49.  
  50. }); 
  51.  
分享到:
评论

相关推荐

    jquery简单实现拖拽效果

    在JavaScript的世界里,jQuery...在提供的`drag`文件中,可能包含了实现上述拖拽效果的示例代码或进一步的扩展,如添加缓动效果、限制拖动方向等。通过学习和实践这些代码,你可以更好地掌握jQuery实现拖拽功能的技巧。

    qt自定义图形实现拖拽效果.7z

    本项目"qt自定义图形实现拖拽效果.7z"可能包含了一个示例,通过阅读其中的"ruanjian-c-339363.pdf"文档,我们可以深入理解这一过程。 首先,我们需要了解Qt中的QGraphicsView和QGraphicsScene。QGraphicsView是一个...

    Qt自定义图形实现拖拽效果

    本文实例为大家分享了Qt自定义图形实现拖拽效果的具体代码,供大家参考,具体内容如下 在这里自定义图形是通过QPaintEvent事件绘画的图形,也可以通过自定义控件的方式添加到qt中。 首先定义类来自定义图形,这里...

    使用 svg 实现拖拽效果

    在SVG(Scalable Vector Graphics)中实现拖拽效果,是一种常见的交互设计技术,它可以用于创建用户界面中的可操作元素,如图形、图表或者图标。SVG因其矢量特性,使得图像在不同分辨率下都能保持清晰,同时其丰富的...

    JS实现拖动效果

    在JavaScript中实现拖动效果是一项常见的任务,尤其在构建交互式网页或富互联网应用程序时。这个主题涉及到DOM操作、事件监听、鼠标位置计算等多个技术点。以下是对这一知识点的详细阐述: 1. **事件监听**:...

    Qt 实现拖拽效果

    在QML中实现拖拽效果是一项常见的需求,特别是在创建可自定义且具有高度交互性的应用时。本篇文章将深入探讨如何使用Qt QML来实现拖放(Drag and Drop)功能。 首先,拖放功能涉及到两个主要组件:拖动源(Drag ...

    igoogle实现拖拽效果

    标题:"igoogle实现拖拽效果" 描述:本文将深入探讨如何使用JavaScript脚本来实现类似iGoogle的拖拽功能,这是一种非常实用的技术,可以极大提升网页的交互性和用户体验。通过具体的代码示例,我们将逐步解析其实现...

    js树形菜单实现拖动效果

    同时,为这些元素绑定拖动事件处理函数,实现拖动效果。 需要注意的是,为了提供良好的用户体验,拖动过程中应显示一个视觉反馈,比如改变鼠标指针样式或高亮拖动的元素。此外,还要考虑边界限制,确保元素不会被拖...

    javascript实现拖拽效果

    原声JS实现拖拽效果,带有详细思路、注释。原声JS实现拖拽效果,带有详细思路、注释。

    最新Js实现拖动效果代码

    在JavaScript的世界里,实现拖动效果(Drag and Drop)是一项常见的任务,特别是在创建交互式Web应用或用户界面时。这个“最新Js实现拖动效果代码”可能包含了一套完整的解决方案,帮助开发者为网页元素添加拖放功能...

    jquery实现拖拽效果

    本文将深入探讨如何使用jQuery实现拖拽效果,这是网页交互设计中的一个常见功能,通常用于创建可自定义布局的元素,如拖动窗口或调整元素位置。 首先,jQuery UI库提供了一个内置的`draggable()`方法,使得实现拖拽...

    通过onmousedown实现拖拽效果

    通过onmousedown实现拖拽效果

    Js实现拖拽效果源码下载

    在这个“Js实现拖拽效果源码下载”项目中,我们将探讨如何利用JavaScript实现元素在网页上的拖放功能。 拖拽效果(Drag and Drop)是网页交互中常见的一种功能,它可以提升用户的操作体验,例如在文件管理器中移动...

    Android-ImageNice9Layout仿Nice首页图片列表9图样式并实现拖拽效果

    "Android-ImageNice9Layout仿Nice首页图片列表9图样式并实现拖拽效果"是一个项目,其目标是模仿Nice应用的首页图片展示方式,并添加了拖拽排序功能。下面将详细介绍这个项目涉及的关键知识点。 1. **Nine-Patch ...

    JavaScript+css实现拖拽效果

    本文将详细讲解如何使用JavaScript和CSS来实现这一效果,以创建一个可拖拽的元素并处理其在页面上的位置。 首先,我们需要理解JavaScript在拖放功能中的角色。JavaScript提供了`dragstart`、`drag`、`dragend`以及`...

    table实现列宽的拖动效果

    实现拖动效果的关键在于监听用户的鼠标操作。通常会使用`mousedown`、`mousemove`和`mouseup`事件。当用户按下鼠标时,记录初始位置;在鼠标移动时,根据移动距离动态改变列宽;当用户释放鼠标时,结束调整。 3. *...

    js 实现拖拽效果

    在给定的文件信息中,主要关注的是如何利用JS实现DOM对象的拖拽效果。下面将深入解析这个知识点,包括其实现原理、关键代码片段以及应用场景。 ### JS实现DOM对象拖拽效果 #### 实现原理 拖拽效果在网页上是非常...

    CListCtrl控件实现Item项拖拽效果

    在这个主题中,我们将深入探讨如何利用CListCtrl实现Item项的拖拽效果,这对于创建具有交互性的应用程序非常有用。 首先,我们需要了解CListCtrl的基本用法。CListCtrl继承自CWnd类,它可以展示一个或多个列的列表...

    AJAX实现地图拖动效果

    `AJAX实现地图拖动效果`可能是一个JavaScript文件,其中包含了实现拖动效果的代码。`pic`和`images`目录可能存储了地图的切片图片,而`js`目录则可能包含了其他辅助的JavaScript库或文件。 实现地图拖动效果涉及到...

    安卓Launcher桌面相关-使用ViewPager实现高仿launcher拖动效果.rar

    2. **实现拖动效果** - ViewPager默认已经支持左右滑动切换页面,但为了达到更像Launcher的效果,我们可能需要自定义`ViewPager`或者在其内部实现一些额外的触摸事件处理。 - 我们可以监听`ViewPager`的滑动手势,...

Global site tag (gtag.js) - Google Analytics