`
mingnjintian
  • 浏览: 69286 次
  • 性别: 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-DraggableGridViewPager-仿zaker效果的拖拽排序.zip

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

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

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

    Android-app.rar

    android个人中心页面效果源码 Android仿微博、微信、qq 点击缩略图TransferImage Android例子源码IOS风格的uitableview列表 Android例子源码IOS风格的圆角分组设置页面 Android例子源码不断保持后台唤醒的例子源码 ...

    Android中使用TabHost 与 Fragment 制作页面切换效果

    主要介绍了Android中使用TabHost 与 Fragment 制作页面切换效果的相关资料,需要的朋友可以参考下

    Android代码-简单易用强大的RecyclerView库。

    主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果、极简通用的万能适配器Adapter、万能分割线、多种分组效果、常见状态页面、item动画效果、添加多个header和footer、侧滑、拖拽、Sticky(黏性)...

    Android代码-android-drag-square

    这个demo是探探的个人资料编辑页面,受网上一位朋友的委托,该库模仿了其拖动效果。 探探的安卓工程师,应该特别牛逼吧。因为最初时,这种拖拽效果真的无从下手。反编译探探的源代码,发现它做了很严肃的混淆处理。...

    3D WebView for Android and iOS + win + mac Web Browser 4.2

    使用与支持 Vuplex VR/AR 浏览器的...• 与Android插件不同,iOS插件不支持悬停交互、拖拽交互或WebGL。 https://assetstore.unity.com/packages/tools/gui/3d-webview-for-android-web-browser-137030?locale=zh-CN

    淘宝商品详情页面黏滞效果

    仿照淘宝详情页面的商品下拉黏滞效果,效果还可以,需要用到的自取

    Android新特性页面之ViewPager拖拽到最后一页再拖拽打开其他Activity(三种方法)

    android新特性页面,ViewPager拖拽到最后一页再拖拽打开其他Activity.实现的方式有很多,效果比较好的就是到了最后一页再拖拽出现禁止蓝色条时再跳转activity 方式一:拿到ViewPager的边界条EdgeEffectCompat,判断...

    RecycleView瀑布流及上下滑动和左右拖拽

    RecycleView瀑布流及上下滑动和左右拖拽,没积分的可以看博文https://blog.csdn.net/kldby_ttxs/article/details/80363890,代码已经都贴上去了

    Android-EasyXRecyclerView-提供了简单易用强大的RecyclerView库

    包括自定义刷新加载效果、极简通用的万能适配器Adapter、万能分割线、多种分组效果、常见状态页面、item动画效果、添加多个header和footer、侧滑、拖拽、Sticky(黏性)效果、多item布局等,各模块之间灵活、解耦、...

    Android代码-ScrollLayout

    支持手势上拉滑出,中途停顿,下滑退出页面,类似百度地图内场景抽屉拖拽效果效果 Gif 动画 Similar 类似使用 Demo 下载APK体验 下载 Download Demo Usage 使用方法 Step 1 Gradle 配置 dependencies { compile '...

    Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)

    Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题),大屏项目显示云南省3D的地图,可拖拽缩放、地图打点、点击图标弹框等等功能。 ## 使用 - 启动调试服务: `npm start` - 构建 dist: `npm run ...

    android多种分组效果

    android多种分组效果源码主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果、极简通用的万能适配器Adapter、万能分割线、多种分组效果、常见状态页面、item动画效果、添加多个header和footer、侧滑、...

    EasyFloat.zip

    EasyFloat,EasyFloat:浮窗从未如此简单(Android可拖拽悬浮窗口,支持页面过滤、自定义动画,可设置单页面浮窗、前台浮窗、全局浮窗,浮窗权限按需自动申请...),博客附件,效果请查看博客相对应项目。

    Android代码-CommonRecycler

    空页面 支持 Item的动画效果 支持 Header头支持 支持 一种数据实体对应多种Item 支持 侧滑、拖拽 支持 快速实现聊天模式(DEMO包含Dagger2、MVP、RxJava2、Realm、键盘弹出优化处理) 支持 Kotlin与Kotlin...

    安卓手机-TSF桌面

    2.增加页面3D过渡效果控制选项(能在原页面过渡效果基础上增强立体感)。 3.在高清设备和平板电脑上支持横竖屏切换。 4.设置菜单加入信息反馈通道。 5.TSF设置加入桌面配置备份功能(能备份或恢复桌面的布局和设置)。...

    Android tsf 1.9.9

     您以很自由地把单个或多个应用从应用页面中创建快捷方式并拖拽到任何一个自定义页面,或在自定义页面中把各种控件自由的进行页面切换、角度旋转等操作,从而布局属于您的个性化页.  侧面栏提供了各种TSF SHELL 3D...

    贝塞尔曲线动画效果

    二阶贝塞尔曲线实现qq拖拽动画,以及贝塞尔曲线实现界面切换,页面标签弹性小球的动画实现

    mojito:微信、bilibili大图、长图、gif、视频、自定义view的转场效果,The transition effect of wechat, bilibili large image, long image, GIF, video and custom view

    mojito 功能列表支持Coil图片加载器支持Glide图片加载器支持Fresco图片加载器支持视频图片混合、GIF、图片预览支持拖拽关闭支持自定义页面索引指示器、进度条、Cover支持原图加载策略二维码下载体验通过视频查看效果...

Global site tag (gtag.js) - Google Analytics