2019独角兽企业重金招聘Python工程师标准>>>

ios常见视图在顶部往下拉(下冲)或底部往上拉(上冲)有一个弹性回退的动画效果。著名的CM ROM和一些手机厂商也争相集成这种效果。android 从2.3开始实现了下冲到底部和上冲到顶部时颜色渐变动画效果。这种在iphone中经典的特效在一定程度上满足了android迷们追逐体验的需求。下面我们来探讨实现这种效果的思路和实现锥形。

view类有两个很重要的方法scrollTo和scrollBy,允许移动视图的可见区域。这就是我们今天实现动画效果的理论基础,我们可以在android数据列表顶部往下拖动列表或底部往上拖动列表时相应的移动数据列表,当停止拖动时再让它弹回去。那么怎么才能知道在顶端和底部呢?请查阅ListView的相关资料。具体的原理讲完了上代码。

package com.droidwolf;import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView;
//by droidwolf 转载请注明
public class IpListView extends ListView implements Runnable {private float mLastDownY = 0f;private int mDistance = 0;private int mStep = 10;private boolean mPositive = false;public IpListView(Context context, AttributeSet attrs) {super(context, attrs);}public IpListView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}public IpListView(Context context) {super(context);}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:if (mLastDownY == 0f && mDistance == 0) {mLastDownY = event.getY();return true;}break;case MotionEvent.ACTION_CANCEL:case MotionEvent.ACTION_UP:if (mDistance != 0) {mStep = 1;mPositive = mDistance >= 0;this.post(this);return true;}mLastDownY = 0f;mDistance = 0;break;case MotionEvent.ACTION_MOVE:if (mLastDownY != 0f) {mDistance = (int) (mLastDownY - event.getY());if ((mDistance < 0 && getFirstVisiblePosition() == 0 && getChildAt(0).getTop() == 0)|| (mDistance > 0 && getLastVisiblePosition() == getCount() - 1)) {mDistance /= 2;scrollTo(0, mDistance);return true;}}mDistance = 0;break;}return super.onTouchEvent(event);}@Overridepublic void run() {mDistance += mDistance > 0 ? -mStep : mStep;scrollTo(0, mDistance);if ((mPositive && mDistance <= 0) || (!mPositive && mDistance >= 0)) {scrollTo(0, 0);mDistance = 0;mLastDownY = 0f;return;}mStep += 1;this.postDelayed(this, 10);}
}// end class

IpListView实现的动画只是简单的回退效果,也没有实现上冲和下冲特效,具体实现留给您去完善吧~~

转载于:https://my.oschina.net/droidwolf/blog/285409

android listview仿iphone特效相关推荐

  1. android 高仿苹果listview,android listview仿iphone特效

    ios常见视图在顶部往下拉(下冲)或底部往上拉(上冲)有一个弹性回退的动画效果.著名的CM ROM和一些手机厂商也争相集成这种效果.android 从2.3开始实现了下冲到底部和上冲到顶部时颜色渐变动 ...

  2. android listview仿iphone通讯录ios 3dTouch

    接上篇android listview仿ios 3dTouch效果,对代码进行整合进类似ios通讯录里面,效果图如下:     . 效果如上,在上篇的内容后面跳出电话信息. popmenu布局文件代码 ...

  3. Android ListView仿微信聊天界面

    这篇文章主要为大家详细介绍了ListView仿微信聊天界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Android ListView仿聊天界面效果图的具体代码,供 ...

  4. Android 高仿Iphone Settings 基于Android M版本

    之前在公司有需要做高仿的项目,恰好分配到了Settings的修改 一级菜单效果图如下: Settings的修改简单来说,主要是资源的一些替换,各种Preference的定制.当然,还有一些零星的其他问 ...

  5. android listview仿ios 3dTouch效果

    最近项目上要求在listview上实现类似ios 3dTouch功能,现在网上搜索一番,发现该文章很好的实现了这个功能,于是在这文章的基础上我自己做了一个改进.效果如图所示:     实现思路: 1. ...

  6. android+高仿iphone,网购iPhone7P的失败经历,原来是安卓高仿!

    原标题:网购iPhone7P的失败经历,原来是安卓高仿! 大家都有网购的经历,有时候能买到便宜的好货,有时候却差强人意!但是大多人还是幸运的,为什么呢?因为他们至少在买手机没有上过当,但是当骗子遇到小 ...

  7. Android ListView仿手机qq主页面

    ListView的使用 仿照个人qq主页面 原图 效果图 首先删除原来的工具栏 在values文件夹下的styles文件中将style标签中的parent改为NoActionBar parent=&q ...

  8. android Gallery 仿iPhone 图片滑动

    先在将Gallery标签放入. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm ...

  9. android 自定义 滑动删除,Android_Android ListView实现仿iPhone实现左滑删除按钮的简单实例,需要自定义ListView。这里就交Fl - phpStudy...

    Android ListView实现仿iPhone实现左滑删除按钮的简单实例 需要自定义ListView.这里就交FloatDelListView吧. 复写onTouchEvent方法.如下: @Ov ...

最新文章

  1. vue源码-对于「计算属性」的理解
  2. 第一年的报告 工程系的研究生
  3. Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)
  4. 需求决定设计,设计来源于需求
  5. 打印的图片不清晰_如何调节图片kb,但又不改变图片的清晰度?
  6. uni-app开发:tabar组件与顶部导航栏(功能开发篇)
  7. pdf英文转换成html网页,PDF文件转换成html网页文件小方法
  8. Adobe Indesign怎么让图片衬于文字下方?
  9. Linux的vim编辑器常用命令
  10. java 命名规则_java中命名规范
  11. winrar5.31 专用激活key
  12. 涉密计算机信息系统的安全审计,涉密计算机信息系统安全审计.doc
  13. cad多段线画圆弧方向_(cad多段线画圆弧方向)在cad中如何使用excel画样条曲线
  14. linux查询对外2827端口运行文件,lsof介绍
  15. STM32定时器实现100毫秒保存一次数据到SD卡
  16. jQuery for Web Designers Web开发jQuery教程 Lynda课程中文字幕
  17. html5中给视频添加字幕
  18. DataFrame 选取其中的两列数据
  19. 微信公众号编辑菜单栏代码
  20. 案例分析企业微信带来的功能效果?

热门文章

  1. 在线JSON转CSV格式文件工具
  2. linux远程复制文件命令小总结
  3. 最全面的C#开源项目介绍
  4. 光纤到桌面FTTD解决方案
  5. java 获取本机mac地址并转为字符串
  6. 去除img未加载到的默认边框问题
  7. c#开源消息队列中间件EQueue 教程
  8. web内容缓存 nginx高性能缓存详解
  9. Linux中telnet命令
  10. 奢侈品网购真正大牌占比未过半:被指只剩噱头