`
mingnjintian
  • 浏览: 69695 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

android页面拖拽效果

阅读更多

最近看到一个画图工具有个挺不错的拖动效果,感觉挺好,想想JS中实现拖拽功能用起来也挺爽,下面简单的做了一个拖拽效果的方法,们举例给按钮做一个拖拽的效果。

 

拖拽功能事件:

	private OnTouchListener touch = new OnTouchListener() {
		int[] temp = new int[] { 0, 0 };
		public boolean onTouch(View v, MotionEvent event) {
			int eventaction = event.getAction();
			Log.i("&&&", "onTouchEvent:" + eventaction);
			int x = (int) event.getRawX();
			int y = (int) event.getRawY();
			switch (eventaction) {
				case MotionEvent.ACTION_DOWN: //
					temp[0] = (int) event.getX();
					temp[1] = y - v.getTop();
					break;
				case MotionEvent.ACTION_MOVE: // touch drag with the ball
					v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight());
					v.postInvalidate();
					break;
				case MotionEvent.ACTION_UP:
					break;
				}
				return false;
		}
	};
 

 

注册事件

button.setOnTouchListener(touch);
 

 

当触摸按钮拖动时,即可看到按钮根据动作的方向移动,至于其他的控制,比如不能拖出边缘等等效果,自己给layout中设置即可。

 

 

 

3
3
分享到:
评论
1 楼 刀枪剑戟 2011-09-21  
恩,不错。应该加上这个方法的解说的:
public void layout (int l, int t, int r, int b) 
Since: API Level 1 Assign a size and position to a view and all of its descendants 

This is the second phase of the layout mechanism. (The first is measuring). In this phase, each parent calls layout on all of its children to position them. This is typically done using the child measurements that were stored in the measure pass().

Derived classes should not override this method. Derived classes with children should override onLayout. In that method, they should call layout on each of their children.


Parameters
l  Left position, relative to parent 
t  Top position, relative to parent 
r  Right position, relative to parent 
b  Bottom position, relative to parent  

相关推荐

    android拖拽效果仿zaker 优化性能版本

    拖拽效果在Android应用中通常用于实现各种功能,如整理桌面图标、滑动切换页面或在列表中进行排序。Zaker作为一个知名的新闻阅读应用,其拖拽效果设计得非常细腻,能够自动根据用户的操作调整元素的位置,这增加了...

    Android-DraggableGridViewPager-仿zaker效果的拖拽排序.zip

    仿zaker效果的拖拽排序。可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页。项目地址:https://github.com/zzhouj/Android-DraggableGridViewPager 效果图: 如何...

    Android 仿zaker效果的拖拽排序.zip

    本项目名为"Android 仿zaker效果的拖拽排序.zip",其核心是实现了动态列数设定、动态增删item以及自动分页功能,提供了丰富的自定义可能性。 首先,我们要理解的是动态设置列数这一特性。在某些设计中,根据屏幕...

    Android-模仿手机QQ底部导航栏Icon拖拽效果

    在Android应用开发中,创建一个类似手机QQ底部导航栏的Icon拖拽效果是一项常见的需求,它能提升用户体验,使得用户在各个功能模块间切换时更加流畅。本教程将深入探讨如何实现这一效果。 首先,我们需要了解这个...

    Android-一分钟实现向左拖拽跳转至更多页面的通用控件

    在Android开发中,创建一个可向左拖动以展示更多页面的通用控件是一项常见的需求,这能够为用户带来更加直观且有趣的交互体验。本文将详细介绍如何在一分钟内实现这样的功能,主要涉及Android自定义视图、手势检测...

    自己重写Android下的拥有拖拽功能的Gallery

    3、拖拽效果的用户体验很好。 4、支持item选择效果,前提是item实现了View类的setSelected()方法。 5、点击测试用例1中第一个Item,即往Gallery中动态添加Item。 6、测试用例2中使用了多线程,取得当前Android...

    android页面滚动条

    `iscroll.js`就填补了这个空白,它可以无缝集成到Webview中,让基于HTML5的Android页面也能拥有流畅的滚动效果。`iscroll.js`的使用非常简单,只需要在HTML中引入库文件,并通过JavaScript代码配置和初始化滚动区域...

    gridview 图标 拖拽效果

    总的来说,实现一个带有拖拽效果的GridView涉及到了Android UI交互设计、自定义视图组件、触摸事件处理、数据模型与视图的同步,以及可能的动画效果。这是一个相对复杂的任务,但通过理解并掌握这些知识点,可以构建...

    Android酷炫登录动画效果

    在Android应用开发中,用户体验是至关重要的因素之一,而登录页面作为用户接触应用的第一步,其界面设计和交互效果往往能直接影响用户的第一印象。"Android酷炫登录动画效果"这个主题,聚焦于如何通过动画技术提升...

    android的拖动效果

    ### Android的拖动效果 #### 一、概述 在Android应用开发过程中,了解并掌握不同类型的布局显示方式是非常重要的。本文将重点介绍Android中的几种基本布局类型及其应用场景,并通过一个具体的示例——拖动效果的...

    模拟android桌面的滑动翻页效果

    综上所述,模拟Android桌面的滑动翻页效果涉及到了自定义ViewGroup、触摸事件处理、页面管理、动画实现以及布局测量等多个方面的知识。通过以上步骤和策略,我们可以创建出一个具有平滑翻页效果的自定义组件。在实际...

    android viewflipper手势拖动效果(An-Beer工作室)

    【Android ViewFlipper 手势拖动效果详解】 在 Android 应用开发中,ViewFlipper 是一个非常有用的布局组件,它可以实现多个视图(View)之间的切换,并且支持手势滑动切换效果,使得用户界面更加生动和交互性更强...

    Android类似桌面应用拖动的GridView

    其次,为了支持多页,我们可以使用PagerAdapter或者FragmentStatePagerAdapter来创建一个滑动页面的效果。每个页面都是一个单独的GridView,每个GridView显示一部分数据。当用户拖动子项到边界时,可以通过判断边界...

    Android-DragSortRecyclerView仿新闻类app频道切换页面支持拖拽排序交换频道等

    本项目“Android-DragSortRecyclerView仿新闻类app频道切换页面支持拖拽排序交换频道”是基于RecyclerView的扩展,实现了用户可以通过拖动来排序和交换列表中的频道项,模拟新闻类应用的频道切换功能。 首先,...

    Android-DragFooterView一个向左拖拽跳转至更多页面的通用控件

    `DragFooterView`控件就是这样一个专门针对提升用户体验而设计的组件,它允许用户通过向左拖拽底部视图来触发更多页面的切换或者加载。这个控件在很多需要无限滚动或分页加载的应用场景中非常实用,例如社交媒体、...

    安卓动画效果相关-实现类似与手机桌面图标的拖拽效果暂时实现这点功能以后在继续完善换页效果.rar

    虽然目前的功能仅限于图标拖拽,但计划在未来进一步完善,添加页面切换等更多功能。 首先,我们需要理解安卓中的动画机制。安卓系统提供了多种动画实现方式,如属性动画(Property Animation)、视图动画(View ...

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

    ViewPager是Android SDK中的一个强大视图,主要用于展示多个页面并允许用户左右滑动切换这些页面。在实现Launcher桌面的滑动效果时,我们可以将每个主屏幕看作ViewPager的一个页面,通过滑动来切换不同的主屏幕。 1...

    android控件在界面上自由拖动位置显示

    在Android开发中,实现控件在界面上自由拖动位置显示是一种常见的需求,可以提供更加灵活和用户友好的交互体验。本主题主要涉及的是如何在Android应用中创建一个自定义的拖动控件,允许用户自由调整控件在屏幕上的...

    通过拖拽的方法自动生成html

    这种编辑器提供了可视化的界面,用户可以将元素(如文本、图片、按钮等)从工具栏拖放到工作区,编辑器则会自动产生相应的HTML代码。这样,用户无需理解HTML语法,就能实现页面的设计。 1. **拖拽界面**:这类工具...

    ViewPaper 拖拽title分页

    在Android开发中,"ViewPaper 拖拽title分页"是一种常见的用户界面设计,它允许用户通过拖动页面标题来切换不同的内容视图。这种交互模式常见于新闻阅读、电商应用等,提供了便捷的浏览体验。下面我们将深入探讨如何...

Global site tag (gtag.js) - Google Analytics