Android Listview滑动及渐变动画
来源:互联网 发布:阿里云os3.2 系统优化 编辑:程序博客网 时间:2024/05/01 20:28
在饿了么订餐的时候发现首页的滑动动画挺不错的,在网上搜索相似的demo但是没有搜到。于是就自己跟着写了一个。其实并没有想象的那么复杂,下面是饿了么的实现效果。
我所实现的效果如下
要想实现这个效果思路是很重要的。它是根据listview的滚动状态来判断是否移动的,LIstview的状态有三种,分别是OnScrollListener.SCROLL_STATE_IDLE空闲状态OnScrollListener.SCROLL_STATE_FLING滚动状态OnScrollListener.SCROLL_STATE_TOUCH_SCROLL触摸后滚动。我是在Listview的触摸滚动状态下进行的向右移动并缩小和改变透明度的,然后当Listview停止滚动的时候出现与滚动时相反。
再者就是动画了,Android的动画在这里只用到了平移动画(TranslateAnimation),透明动画(AlphaAnimation)以及缩放动画(ScaleAnimation)然后使用 AnimationSet将多个动画组合在一起(AnimationSet提供了一个把多个动画组合成一个组合的机制,并可设置组中动画的时序关系,如同时播放,顺序播放等)。
首先要上的就是Listview滚动时的动画代码
private void startScroll() { // Alpha动画0.0完全透明 AlphaAnimation aa = new AlphaAnimation(0.1f, 0.5f); // 设置动画播放的时间 毫秒为单位 aa.setDuration(200); // 界面停留在动画结束状态 aa.setFillAfter(true); TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0f, // 设置锚点 Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1.0f); // 显示时间 ta.setDuration(200); // 界面停留在结束状态 ta.setFillAfter(true); ScaleAnimation sa = new ScaleAnimation(1.0f, 0.5f, 1.0f, 0.5f, // 设置锚点 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); // 显示时间 sa.setDuration(200); // 界面停留在结束状态 sa.setFillAfter(true); // 创建动画 AnimationSet as = new AnimationSet(true); as.addAnimation(sa); as.addAnimation(ta); as.addAnimation(aa); // 同时播放动画 as.setFillAfter(true); img_anim.startAnimation(as); }
当ListView为休闲状态时的代码为
private void endScroll() { // showAlpha(); // Alpha动画0.0完全透明 AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f); // 设置动画播放的时间 毫秒为单位 aa.setDuration(200); // 界面停留在动画结束状态 aa.setFillAfter(true); TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f, // 设置锚点 Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0f); // 显示时间 ta.setDuration(200); ta.setRepeatMode(Animation.REVERSE); // 界面停留在结束状态 ta.setFillAfter(true); ScaleAnimation sa = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, // 设置锚点 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); // 显示时间 sa.setDuration(200); // 界面停留在结束状态 sa.setFillAfter(true); // 创建动画 AnimationSet as = new AnimationSet(true); as.addAnimation(sa); as.addAnimation(ta); as.addAnimation(aa); // 同时播放动画 as.setFillAfter(true); img_anim.startAnimation(as); }
点击此处下载源码
如有问题请留言或加Android技术交流群 50208422如果此群已满请加Android交流群 470707794
0 0
- Android Listview滑动及渐变动画
- android 滑动listview ActionBar渐变
- 解锁滑动渐变动画
- Android中的TollBar随着listview滑动透明度渐变
- Android ListView上下滑动弹性动画
- listview滑动,变换动画
- android 渐变动画
- Android 开场渐变动画
- Android 动画 - AlphaAnimation渐变动画
- android listView滑动时控制顶部控件 带动画
- android标题栏滑动渐变效果
- listview左右滑动动画实现
- Android中心渐变动画XML
- Android-alpha-渐变透明度 动画
- android studio 按钮渐变动画
- android中颜色渐变动画
- android动画,旋转,渐变,缩放
- Android开场透明度渐变动画
- android adb启动失败问题
- 导航栏透明度改变
- 多址技术与复用技术
- SpringMVC非注解的处理器适配器-HandlerAdapter
- C/C++ 文件读写操作总结
- Android Listview滑动及渐变动画
- 继承、实现、依赖、关联、聚合、组合的联系与区别
- java正则表达式
- 2016 Multi-University Training Contest3
- 诸侯安置DP做法
- Qt Quick ToolTip
- POJ 2996 简单模拟
- poj2299 Ultra-QuickSort
- HTML学习03-HTML标题/HTML段落