- 浏览: 633660 次
- 性别:
- 来自: 在野
文章分类
最新评论
-
tubinting:
学习了
[原创] 如何在android中实现swipe的手势功能及页面拖动动画 -
checkes:
我手上也有一块beagleboard 是omap37的这里看到 ...
Android成功刷到beagle board ^_^ -
thebye85:
成功了,谢谢分享
程序中如何开启关闭wifi服务 -
皇室勇少:
高人陋于市...
Google I/O 大会总结系列 - Dalvik开发者: Dan Bornstein -
wcily123:
lordhong 写道jjcang 写道大神一定没有用过e.p ...
[书评]深入潜出Google Android
iPhone界面解锁是用手指划动来实现的, 那么这个手势gesture在android里如何实现呢?
Android SDK提供了一个listener类来侦测各种不同的手势:
SimpleOnGestureListener. 你只需要实现自己所关心的手势就可以了.
Swipe在android里面是叫Fling ^_^
首先创建自己的一个手势detector类:
一个划动的手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速度, 所以我们定义几个定量:
然后在onFling方法中, 判断是不是一个合理的swipe动作:
这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:
自定义的animation可以查看具体的XML, 比如从左边进来的一个动画:
当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:
这是view animation的一个截图:
源代码在附件中 ^_^
看下ListView的源代码... 很晕的... 不过实现的思路也在那里, 呵呵
because... you are looking at my pic that was taken 10 years ago... Orz...
ORZ。。刚看了鲁豫有约--黄渤的那期。。。大牛和他真像啊
说错了吧... 是他和我真像... =.=#
because... you are looking at my pic that was taken 10 years ago... Orz...
ORZ。。刚看了鲁豫有约--黄渤的那期。。。大牛和他真像啊
because... you are looking at my pic that was taken 10 years ago... Orz...
是~~~~~ IT民工超过10年了...
android listview没有页的概念
你说的这个模式是iPhone的UI模式, android要安装android的模式来编程, 不是技术上的限制, 而是用户习惯的问题.
我也看了一些android的源码,感觉没您这么深刻啊,能不能说一下,怎么写的好了,我也学习领会一下。
你看下homescreen那个slidingdraw那个widget, 就是主menu那个...
我也终于可以发帖了... 这几天连续做了好几次脑残测试... Orz...
就冲你是冲我来的... 我就回答下... 一般人... 我不告诉的...
你公司具体是做什么的? embedded linux吗? 一般这些只用到C, C++反而较少, 太底层了.
android基本上都是通过JNI(Java Native Interface)来call这些C的库. 对于我们新手来说, 起步是挺困难的.
我们可以先从Android的代码开始看, 由浅入深, 慢慢深入到C方面. 这需要一个过程, 要有耐心和恒心.
不过如果你可以精通android的源码的话, 已经是大牛一只了. 我最近开始看了下android的源码, 那个打击啊... 人与人的差距... 真大啊~~~~~~
我也看了一些android的源码,感觉没您这么深刻啊,能不能说一下,怎么写的好了,我也学习领会一下。
您的这个例子我学习了 但是横向翻页的话 就不能有滚动条了
其实我是想实现textview横向翻页的。自己瞎写了点代码总算实现了,谢谢您的帮助
java新手 见笑了
Android SDK提供了一个listener类来侦测各种不同的手势:
SimpleOnGestureListener. 你只需要实现自己所关心的手势就可以了.
Swipe在android里面是叫Fling ^_^
首先创建自己的一个手势detector类:
class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { }
一个划动的手势有几个特征, 比如是在x或者y轴上近乎直线的划动, 中途路径的偏差不能太大, 而且划动需要一定的速度, 所以我们定义几个定量:
private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;
然后在onFling方法中, 判断是不是一个合理的swipe动作:
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); }
这里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:
viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
自定义的animation可以查看具体的XML, 比如从左边进来的一个动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="800"/> </set>
当然最后不要忘记在你的Activity中override onTouch方法来获取手势action:
@Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return true; else return false; }
这是view animation的一个截图:
源代码在附件中 ^_^
评论
31 楼
tubinting
2014-09-03
学习了
30 楼
lordhong
2010-01-26
zolomon 写道
这个效果真的不错,我很想做一个像andorid自带的ListView那样的效果,只不过是一个横向的,可是摸不到头脑,看了lordhong的这个帖子有了些启发,可是下一步又摸不到头脑了:(不知道lordhong可否指点一二?
看下ListView的源代码... 很晕的... 不过实现的思路也在那里, 呵呵
29 楼
zolomon
2010-01-21
这个效果真的不错,我很想做一个像andorid自带的ListView那样的效果,只不过是一个横向的,可是摸不到头脑,看了lordhong的这个帖子有了些启发,可是下一步又摸不到头脑了:(不知道lordhong可否指点一二?
28 楼
lordhong
2009-12-10
freedombelief 写道
lordhong 写道
vlinux 写道
看不出,看头像挺年轻的,我们公司工作10年以上的都已经写在脸上或者刻印在头发上了
because... you are looking at my pic that was taken 10 years ago... Orz...
ORZ。。刚看了鲁豫有约--黄渤的那期。。。大牛和他真像啊
说错了吧... 是他和我真像... =.=#
27 楼
freedombelief
2009-12-10
lordhong 写道
vlinux 写道
看不出,看头像挺年轻的,我们公司工作10年以上的都已经写在脸上或者刻印在头发上了
because... you are looking at my pic that was taken 10 years ago... Orz...
ORZ。。刚看了鲁豫有约--黄渤的那期。。。大牛和他真像啊
26 楼
lordhong
2009-11-22
vlinux 写道
看不出,看头像挺年轻的,我们公司工作10年以上的都已经写在脸上或者刻印在头发上了
because... you are looking at my pic that was taken 10 years ago... Orz...
25 楼
vlinux
2009-11-21
看不出,看头像挺年轻的,我们公司工作10年以上的都已经写在脸上或者刻印在头发上了
24 楼
lordhong
2009-11-20
skynetbird 写道
你的文章看的很多,非常赞啊,也是一直做技术的吧。
是~~~~~ IT民工超过10年了...
23 楼
skynetbird
2009-11-20
你的文章看的很多,非常赞啊,也是一直做技术的吧。
22 楼
yuankai
2009-11-13
你用的是SDK2.0还是1.5 ???
21 楼
lordhong
2009-11-13
mnastronomy 写道
请问楼主,怎么样才能判断目前翻到多少页了?
android listview没有页的概念
20 楼
mnastronomy
2009-11-12
请问楼主,怎么样才能判断目前翻到多少页了?
19 楼
lordhong
2009-07-09
skyxiaobai 写道
请教一下:
一个list里面有很多item,如联系人等,用手指向上滚动,item向上滚动,现在是最后一个item滚到底部时就不动了,但要求是最后一个滚到底部后继续向上滚动一段距离后接着向下滚动到底部。
一个list里面有很多item,如联系人等,用手指向上滚动,item向上滚动,现在是最后一个item滚到底部时就不动了,但要求是最后一个滚到底部后继续向上滚动一段距离后接着向下滚动到底部。
你说的这个模式是iPhone的UI模式, android要安装android的模式来编程, 不是技术上的限制, 而是用户习惯的问题.
18 楼
skyxiaobai
2009-07-09
请教一下:
一个list里面有很多item,如联系人等,用手指向上滚动,item向上滚动,现在是最后一个item滚到底部时就不动了,但要求是最后一个滚到底部后继续向上滚动一段距离后接着向下滚动到底部。
还有 trackmotionscroll方法的使用。
谢谢了
一个list里面有很多item,如联系人等,用手指向上滚动,item向上滚动,现在是最后一个item滚到底部时就不动了,但要求是最后一个滚到底部后继续向上滚动一段距离后接着向下滚动到底部。
还有 trackmotionscroll方法的使用。
谢谢了
17 楼
fc6029585
2009-06-03
大哥..
你好强啊..
我想做你徒弟啊!!!
你好强啊..
我想做你徒弟啊!!!
16 楼
lordhong
2009-04-27
softcat 写道
我也看了一些android的源码,感觉没您这么深刻啊,能不能说一下,怎么写的好了,我也学习领会一下。
你看下homescreen那个slidingdraw那个widget, 就是主menu那个...
15 楼
softcat
2009-04-27
lordhong 写道
flygo 写道
终于可以发帖了,真是等了好久了,每次注册一个帐号都要等一天才能发帖,但后来又忘了帐号。真是晕。我每天几乎会来看一下,今天我也回个帖。我可是冲着lordhong来的哦。看了你的很多帖子,非常的不错,也感谢你给我们提供好的资料。但移动的这个版块现在有点冷清的,我相信以后会火的,我也会,我因为最近也想搞移动方面的开发,我本来是做j2ee的,但是我所在公司是做移动应用的,感觉自己是在给他们做陪衬的,而且他们是用c++做的开发,也瞧不起java,晕死,心里不爽啊,的确在操作比效底层东西上面java还是不行,速度也的确有点慢。最近有空在看c++,想着这个还是比效有用,计算机上和手机上都可做开发,而且经久不衰的,java这两年不行了,真是成白菜价了,所以也想往 C/c++ 这个方向发展,但自己还一直在犹豫,不知道具体的方向,手机的平台也多。
我也终于可以发帖了... 这几天连续做了好几次脑残测试... Orz...
就冲你是冲我来的... 我就回答下... 一般人... 我不告诉的...
你公司具体是做什么的? embedded linux吗? 一般这些只用到C, C++反而较少, 太底层了.
android基本上都是通过JNI(Java Native Interface)来call这些C的库. 对于我们新手来说, 起步是挺困难的.
我们可以先从Android的代码开始看, 由浅入深, 慢慢深入到C方面. 这需要一个过程, 要有耐心和恒心.
不过如果你可以精通android的源码的话, 已经是大牛一只了. 我最近开始看了下android的源码, 那个打击啊... 人与人的差距... 真大啊~~~~~~
我也看了一些android的源码,感觉没您这么深刻啊,能不能说一下,怎么写的好了,我也学习领会一下。
14 楼
poppy_zy
2009-04-25
lordhong 写道
^_^ 不错, 大家互相学习, 呵呵
横向翻页的话用ViewFlipper这个东西, 很好用的, 我的这个贴的源码里有.
横向翻页的话用ViewFlipper这个东西, 很好用的, 我的这个贴的源码里有.
您的这个例子我学习了 但是横向翻页的话 就不能有滚动条了
13 楼
lordhong
2009-04-24
^_^ 不错, 大家互相学习, 呵呵
横向翻页的话用ViewFlipper这个东西, 很好用的, 我的这个贴的源码里有.
横向翻页的话用ViewFlipper这个东西, 很好用的, 我的这个贴的源码里有.
12 楼
poppy_zy
2009-04-24
lordhong 写道
ScrollView自身对onTouch这些event有捕捉的.
你看看能不能override它的一些onTouch功能
你看看能不能override它的一些onTouch功能
其实我是想实现textview横向翻页的。自己瞎写了点代码总算实现了,谢谢您的帮助
tv.setOnTouchListener(new OnTouchListener() { float x_down = -1; float x_up = -1; float f_down = -1; float f_up = -1; public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { x_down = event.getRawX(); if (x_down != -1) { f_down = x_down; } } if (event.getAction() == MotionEvent.ACTION_UP) { x_up = event.getRawX(); if (x_up != -1) { f_up = x_up; } } if (x_up != -1 && x_down != -1) { System.out.println(f_down + " " + f_up); if (f_down - f_up > 50) { System.out.println("上一页"); } else if (f_down - f_up < -50) { System.out.println("下一页"); } f_down = -1; f_up = -1; x_down = -1; x_up = -1; } return true; } });
java新手 见笑了
发表评论
-
做个android开发者的调查,希望大家帮忙
2010-08-18 13:25 4118做个android开发者的调查,希望大家帮忙:http://w ... -
AdFreeDetector 开源了
2010-06-02 09:48 3992AdFree Android http://forum.big ... -
代码实例 -- 在程序里检查虚拟键盘状态, 并开启关闭
2010-02-23 23:56 4021最近都在推上, 荒废了blog, 所以都没怎么写心得, 对不起 ... -
Nexus One 真的是 Superphone 吗?
2010-01-24 02:24 5408本文首发于 ifanr.com : http://www.i ... -
N900开箱照及Droid对比
2009-11-15 02:04 5145今天收到从 Nokia 芬兰总 ... -
Droid 初体验之包装, 实机对比, 及其他
2009-11-15 02:02 2923Droid的包装令人失望, 可以说是山寨的不能山寨了. 纸板 ... -
Droid 初体验
2009-11-15 01:59 2666今天早上去 Verizon 手机 ... -
JavaEye Android 客户端开源啦
2009-11-02 11:02 10829http://code.google.com/p/javaey ... -
[书评]深入潜出Google Android
2009-10-03 09:51 5783首先感谢图灵教育的刘江大人赠书 http://www.turi ... -
谁在移动mmarket上成功上传过app?
2009-09-06 09:13 4943MLGBD... 竟然指定要IE6, 而且... 还JS A ... -
PrimoSpot - 寻找停车位的app (断断续续做了几个月, 今晚终于发布了)
2009-08-25 11:28 4556PrimoSpot.com是个专门帮车主寻找停车位的网站. ... -
JavaEye Android 客户端正式发布
2009-08-02 10:27 5569经过2个半星期的努力… lordhong和mqqqvpppm, ... -
天朝android开发者group
2009-07-04 10:59 5161http://groups.google.com/group/ ... -
[原创] 如何在android中实现shake的动作检测 - part 1
2009-04-18 10:13 4042新型的手机现在都加入了三维规则加速器(acceleromete ... -
程序中如何开启关闭wifi服务
2009-04-16 09:30 4740开启关闭wifi服务牵涉到系统服务的问题, 在你的manife ... -
Android成功刷到beagle board ^_^
2009-04-08 11:38 9157捣鼓了3天, 终于成功把android刷到beagle boa ... -
今年的Google I/O, 谁去啊?
2009-04-03 12:08 21595月27, 28的google I/O 开发者大会, JE的有 ... -
N800 刷 Android 带软键盘, wifi
2009-04-02 10:29 3024NITdroid http://guug.org/nit/ni ... -
[原创] 如何在Android Market赚钱 part 2 - 免费app附带广告
2009-03-03 10:56 5817如果你的app用户量潜力上来说是巨大的, 而且用户会时常使用你 ... -
[原创] 如何在Android Market赚钱 part 1 - paid app 付费app
2009-03-03 09:59 15285随着我的第一个付费app ...
相关推荐
在Android开发中,手势(Gesture)是用户与设备交互的重要方式之一,特别是在移动应用中,手势操作能够提供直观且高效的操作体验。本话题主要聚焦于“Android手势导致页面滑动”这一现象,我们将深入探讨Android手势...
总结,实现“android手势拖动实现侧边栏效果”需要理解Android手势识别机制,合理设计布局,以及熟练运用动画系统。通过以上步骤,我们可以创建一个类似TestSideShowApp的应用,为用户提供直观且流畅的侧边栏滑动...
在Android开发中,创建一个可向左拖动以展示更多页面的通用控件是一项常见的需求,这能够为用户带来更加直观且有趣的交互体验。本文将详细介绍如何在一分钟内实现这样的功能,主要涉及Android自定义视图、手势检测...
本文将深入探讨如何在Android源码中通过手势实现缩放处理,为用户提供更加直观和丰富的操作体验。 首先,理解Android的手势识别机制至关重要。Android系统提供了GestureDetector类,它是一个用于检测常见触摸屏手势...
在Android开发中,实现类似UC浏览器和墨迹天气应用中的左右滑动切换页面的效果,通常涉及到自定义View或者使用已有的第三方库来实现。这种效果通常被称为“Fling”或“Swipe”效果,它允许用户通过手势在多个视图...
在这个场景中,我们将深入探讨如何在Android中实现手势监听,并结合“View的位置参数”这一概念,来创建动态效果和动画。 首先,理解“View的位置参数”至关重要。在Android中,每个View都有一个位置,由它的left、...
在Android开发中,实现“随手势滑动”的效果是一项常见的任务,这主要涉及到触摸事件的处理和视图的动画效果。下面将详细讲解如何在Android应用中实现这种滑动效果。 1. 触摸事件处理: 在Android中,触摸事件主要...
本资源“安卓Android源码——通过手势实现的缩放处理.zip”着重讲解了如何利用手势处理来实现界面元素的缩放功能,这对于创建具有丰富用户体验的应用至关重要。主要涉及的知识点包括: 1. **手势检测基础**:...
在iOS和Android等移动平台开发中,手势(Gesture Recognizer)是用户与应用程序交互的重要方式。本主题将深入探讨“七大手势”的综合使用,包括如何在应用中添加、移除手势以及实现相应的动画效果。这七大手势通常指...
在Android开发中,实现手势拖拽控件移动是一项常见的需求,尤其在构建交互性强的用户界面时。这个资源包“DragDrop”很可能包含了实现这一功能的相关代码示例、库文件或者教程,帮助开发者快速理解和应用拖放操作。...
在手势滑动中,Scroller可以用来实现页面的平滑滚动效果。 4. **ViewDragHelper**: 在处理更复杂的手势,比如拖放(Drag & Drop)或者抽屉布局(DrawerLayout)时,ViewDragHelper是一个非常有用的工具类。它可以...
滑动删除(Swipe-to-Dismiss)功能允许用户通过在列表项上做简单的滑动手势来删除项目。这种功能在许多应用中都很常见,如邮件应用中的删除邮件。在RecyclerView中实现滑动删除,通常需要自定义一个ItemTouchHelper....
2. 滑动手势(Swipe to Dismiss):同样,ItemTouchHelper也可以帮助我们实现滑动手势,比如在列表中向左滑动以删除item。在Callback中,你需要重写`onSwiped()`方法来处理滑动后的逻辑,同时定义`onChildDraw()`来...
在Android中,可以使用ViewPager或者HorizontalScrollView等组件来实现页面的左右滑动。ViewPager可以自动管理多个页面,并提供平滑的过渡动画,非常适合实现类似桌面的效果。 ```xml <androidx.viewpager.widget....
在Android开发中,手势识别是用户交互的重要组成部分。`GestureDetector`是Android SDK提供的一种用于检测常见触摸手势的工具类,比如单击、长按、滑动等。本教程将详细讲解如何利用`GestureDetector`来实现一个页面...
在Android开发中,拖动按钮(Draggable Button)是一种创新的交互设计,它允许用户通过手势来控制按钮的状态,提供了一种独特的用户体验。本资源提供的是一个实现Android拖动按钮效果的源码示例,可以帮助开发者更好...
通过这些方法,开发者可以对Bitmap进行各种复杂的操作,比如在相册应用中实现图片的缩放、旋转和拖动。 2. **图片加载与缓存**: 高效的相册系统通常会包含一个图片加载库,如Glide或Picasso,它们负责从磁盘、...
在Android开发中,页面滑动(Swipe)是用户体验中的一个重要组成部分,它涉及到用户与界面的交互,尤其是在移动设备上,用户通常通过滑动来浏览内容、切换页面或触发某些功能。本篇将深入探讨Android页面滑动的相关...
在实现侧滑删除和拖拽功能时,我们需要在Adapter中扩展这些基础功能。 1. **侧滑删除(Swipe to dismiss)** - 创建自定义的RecyclerView.Adapter,并重写`onCreateViewHolder`、`onBindViewHolder`方法,确保每个...