Android 实现滑动方法总结
Android 实现滑动方法总结
本文对Android 滑动提供了七种方法,对于每一种实现方法都进行了详细介绍,按照需要大家可以参考下,
1.1 用Layout方法
我们知道,当view在绘制时会调用onlayout方法来设置显示位置。同样也可以通过view的left、top, right,buttom 四个属性来控制view的坐标。每次在ontouchevent的时候,我们都要获取一下触摸点的坐标。
@Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = x; lastY = y; break; case MotionEvent.ACTION_MOVE: int offsetx = (int) (x - lastX); int offsety = (int) (y - lastY); layout(getLeft() + offsetx, getTop() + offsety, getRight() + offsetx, getBottom() + offsety);
//重新获取偏移量,在获取绝对坐标的时候需要非常注意,因为如果这里不注意的话容易获取错误的坐标 lastX = x; lastY = y; break; } return true; }
1.2 使用offsetLeftAndRight(),offsetTopAndBottom()
这个只要知道偏移量就可以使用此方法来进行宠幸绘画。相当于对左右偏移和上下偏移做了一个封装。
1.3 使用layoutparms来实现view的移动
这个要注意的是必须使用父布局类型的layoutpamrs,不然这里将会出错;当然有更简便的方法,如果使用viewgroup.marginlayoutParams就不需要考虑父控件您的类型了。
1.4 使用scrollyTo和scrollBy来实现
在view 中,系统提供了scrollyTo和scrollyBy两个方法来改变view的位置。这两个方法非常好理解,scrollyto是移动到一个指定的位置,scrollyBy是移动的是view的一个偏移量,他实际上也调用了scrollyTo方法。他们只能改变view的内容布局,而不能改变view本身的位置,并没有实现真正意义上的滑动,他改变的是内容的位置。如果在viewgroup中使用它移动的是所有的子view,而在view中使用,他移动的是view的内容。还有就是他们的移动都是瞬间完成的,在事件触发时就已经完成了。
1.5 使用scroller
通过scrooler我们可以平滑的移动view,
1.6属性动画
1.7 viewdraghelper
通过viewdragHelper我们基本可以实现各种动画操作。但是他的使用方法比较复杂:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android ListView滑动改变标题栏背景渐变效果
先上ListView滑动改变标题栏背景渐变效果图,透明转变成不透明效果: 图1: 图2: 图3: 图4: 我用的是小米Note手机,状态栏高度是55px,后面会提到,这里先做个说明: 下面的内容包含了所有代码和一些测试数据: 代码: 代码很简单,也做了注释,这里就不废话了. 先来布局文件: activity的布局 activity_main_10 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi
-
Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { switch(position){ case 0: fragments=new Fragmnet01(); break; case
-
Android用Scroller实现一个可向上滑动的底部导航栏
静静等了5分钟竟不知道如何写我这第一篇文章.每次都想好好的学习学习,有时间多敲敲代码,写几篇自己的文章.今天终于开始实行了,还是有点小激动的.哈哈! 好了废话就不多收了.我今天想实现的一个功能就是一个可以上滑底部菜单栏.为什么我会想搞这么个东西呢, 还是源于一年前,我们app 有这么个需求,当时百度也好谷歌也好,都没有找到想要的效果,其实很简单的一个效果.但是当时我也是真的太菜了,所有有关自定义的控件真的是不会,看别人的代码还好,真要是自己写,一点头绪都没有.因为我试着写了,真的不行啊.当时觉得
-
Android实现探探图片滑动效果
之前一段时间,在朋友的推荐下,玩了探探这一款软件,初玩的时候,就发现,这款软件与一般的社交软件如陌陌之类的大相径庭,让我耳目一新,特别是探探里关于图片滑动操作让人觉得非常新鲜.所以在下通过网上之前的前辈的经历加上自己的理解,也来涉涉水.下面是网上找的探探的原界面 当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路.不过毋庸置疑的是,这种效果的原理肯定和 ListView /RecyclerView 类似,涉及到 Item View 的回收和重用,否则早就因为大量的 Item View
-
Android 顶部标题栏随滑动时的渐变隐藏和渐变显示效果
各位早上好,话不多说,先上效果图: 注意顶部:首页TextView的变化(显示和隐藏)! 首先分析下:UI状态,其是由RecyclerView添加头部组成+RecyclerView 头部添加和RecyclerView分别引用如下:具体的分装数据的过程这里就不在说明,下篇博客会更加深入的写关于 RecyclerView总添加多种不同type类型 compile 'com.bartoszlipinski.recyclerviewheader:library:1.2.1' compile 'com.a
-
Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
TabLayou 主要实现的是标题头的 滑动 这个 控件 类似于 ScrollView XML中的布局 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <android.support.design.widget.TabLayout a
-
Android中Viewpager禁止滑动的实现
前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛. 以前在网上找的例子: public class NoScrollViewPager extends ViewPager { public NoScrollViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public NoScrollViewPager(Context conte
-
Android嵌套RecyclerView左右滑动替代自定义view
以前的左右滑动效果采用自定义scrollview或者linearlayout来实现,recyclerview可以很好的做这个功能,一般的需求就是要么一个独立的左右滑动效果,要么在一个列表里的中间部分一个左右滑动效果 而列表里面也容易,只是需要解决一点小问题,个人认为值得一提的就是高度问题,一般的人采用固定死的高度,可是在列表里面展示和机型的不同,固定死的话很难保证美观,动态的高度才能解决问题的所在 首先在一个列表控件布局上添加一个recyclerview控件 <android.support.v
-
Android 实现滑动方法总结
Android 实现滑动方法总结 本文对Android 滑动提供了七种方法,对于每一种实现方法都进行了详细介绍,按照需要大家可以参考下, 1.1 用Layout方法 我们知道,当view在绘制时会调用onlayout方法来设置显示位置.同样也可以通过view的left.top, right,buttom 四个属性来控制view的坐标.每次在ontouchevent的时候,我们都要获取一下触摸点的坐标. @Override public boolean onTouch
-
android scrollview 滑动到顶端或者指定位置的实现方法
在Android开发中很多时候会遇到一屏显示不下所有内容的现象,那大家也知道这个时候肯定会想到用scrollview来进行滚屏显示. 这个时候由于某些需求,会要求在最开始显示scrollview的时候就定位到某一处,这篇就是来讲这个的哈- 首先,scrollView.scrollTo( x, y );这个方法是能对滚动条进行定位的,这个大家都知道. But,貌似很多时候这个方法的调用没有什么效果呀-- 上面所说的调用scrollTo方法看上去好像并没有起到对滚动条进行定位的效果,其实是因为我们是
-
Android编程滑动效果之Gallery仿图像集浏览实现方法
本文实例讲述了Android编程滑动效果之Gallery仿图像集浏览实现方法.分享给大家供大家参考,具体如下: Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好. 本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果.效果图如下: 1.基本原理 在 Activity 中实现 OnGestureListener 的接口 onFling() 手势事件,通过自定义的 View 绘制draw()
-
android 左右滑动+索引图标实现方法与代码
使用Gallery和ImageView实现android左右滑动+索引图标效果. 首先自定义Gallery实现一次只能滑动一个页面 复制代码 代码如下: public class MGalleryView extends Gallery{ public MGalleryView(Context context, AttributeSet attrs) { super(context, attrs); } //一次只能滑动一张图片注:一张图充满全屏 @Override public boolean
-
Android编程滑动效果之倒影效果实现方法(附demo源码下载)
本文实例讲述了Android编程滑动效果之倒影效果实现方法.分享给大家供大家参考,具体如下: 前面介绍了使用<Android编程实现3D滑动旋转效果的方法>,现在介绍图片倒影实现,先看效果图 这里主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现 1.倒影绘制 ImageAdapter继承自BaseAdapter,详细实现可见前面关于Android Gallery的用法.这里重点介绍倒影原理及实现 倒影原理: 倒影效果是主要由原图+间距+倒影三部分组成,
-
Android实现滑动加载数据的方法
本文实例讲述了Android实现滑动加载数据的方法.分享给大家供大家参考.具体实现方法如下: EndLessActivity.java如下: package com.ScrollListView; import Android.app.ListActivity; import Android.os.Bundle; import Android.view.Gravity; import Android.view.View; import Android.view.ViewGroup; import
-
Android Listview 滑动过程中提示图片重复错乱的原因及解决方法
主要分析Android中Listview滚动过程造成的图片显示重复.错乱.闪烁的原因及解决方法,顺便跟进Listview的缓存机制. 1.原因分析 Listview item 缓存机制:为了使得性能更优,Listview会缓存行item(某行对应的view).listview通过adapter的getview函数获得每行的item.滑动过程中, a.如果某行item已经划出屏幕,若该item不在缓存内,则put进缓存,否则更新缓存: b.获取滑入屏幕的行item之前会先判断缓存中是否有可用的it
-
Android PickerScrollView滑动选择控件使用方法详解
本文实例为大家分享了Android PickerScrollView滑动选择控件的具体使用代码,供大家参考,具体内容如下 先看一下效果图 1.SelectBean模拟假数据 public class SelectBean { /** * ret : 0 * msg : succes * datas : [{"ID":"0","categoryName":"本人","state
-
Android自定义滑动验证条的示例代码
本文介绍了Android自定义滑动验证条的示例代码,分享给大家,具体如下: *注:不知道为什么,h5的标签在这里没用了,所以我也只能用Markdown的语法来写了 项目地址:https://github.com/994866755/handsomeYe.seekbar.github.io 需求: 在我们的某些应用中需要滑动验证.比如说这个样子的: 刚开始我也很懵逼要怎么去弄,结果我去看了一些人的代码,有人是用自定义viewgroup去做,就是viewgroup包含滑动块和滑动条.但我觉得太麻烦,
-
Android Fragment滑动组件ViewPager的实例详解
Android Fragment滑动组件ViewPager的实例详解 1适配器FragmentPagerAdapter的实现 对于FragmentPagerAdapter的派生类,只需要重写getItem(int)和getCount()就可以了. public class MyFragmentPagerAdapter extends FragmentPagerAdapter { private List<Fragment> list; public MyFragmentPagerAdapter
随机推荐
- Java微信公众平台开发(2) 微信服务器post消息体的接收
- 浅谈byte和长度为8的boolean数组互相转换
- iOS中UIWebView网页加载组件的基础及使用技巧实例
- Django自定义认证方式用法示例
- ASP.NET MVC下Bundle的使用方法
- 浅谈html转义及防止javascript注入攻击的方法
- php中将数组转成字符串并保存到数据库中的函数代码
- 我为什么喜欢Go语言(简洁的Go语言)
- 深入解析C++ Data Member内存布局
- javascript中setTimeout和setInterval的unref()和ref()用法示例
- PHP守护进程的两种常见实现方式详解
- C#对DataTable里数据排序的方法
- ajax使用不同namespace的action的方法
- Using the TextRange Object
- jquery插件Jplayer使用方法简析
- Android编程操作联系人的方法(查询,获取,添加等)
- ios启动页强制竖屏(进入App后允许横屏与竖屏)
- 浅谈php(codeigniter)安全性注意事项
- PHP mysql事务问题实例分析
- Java中io流解析及代码实例