Android官方提供的两种viewpager滑动动画
来源:互联网 发布:数据字段进行etl拆分 编辑:程序博客网 时间:2024/06/05 14:35
1.ZoomOutPageTransformer
package com.gelonghui.glhapp.view;import android.view.View;public class ZoomOutPageTransformer implements android.support.v4.view.ViewPager.PageTransformer { private static float MIN_SCALE = 0.85f; private static float MIN_ALPHA = 0.5f; public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); if (position < -1) { // [-Infinity,-1) // 这个页面正在向左远离屏幕 view.setAlpha(0); } else if (position <= 1) { // [-1,1] // 修改默认幻灯片动画,缩小页面 float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position)); float vertMargin = pageHeight * (1 - scaleFactor) / 2; float horzMargin = pageWidth * (1 - scaleFactor) / 2; if (position < 0) { view.setTranslationX(horzMargin - vertMargin / 2); } else { view.setTranslationX(-horzMargin + vertMargin / 2); } // 按比例缩小页面(比例在 MIN_SCALE 和 1之间) view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); // 相对于其尺寸进行渐隐 view.setAlpha(MIN_ALPHA + (scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA)); } else { // (1,+Infinity] // 该页面正在向右远离屏幕 view.setAlpha(0); } }}
2.DepthPageTransformer
package com.gelonghui.glhapp.view;import android.view.View;public class DepthPageTransformer implements android.support.v4.view.ViewPager.PageTransformer { private static float MIN_SCALE = 0.75f; public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // 页面正在向左离开屏幕 view.setAlpha(0); } else if (position <= 0) { // [-1,0] // 使用正常的滑动效果, view.setAlpha(1); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1] // 渐隐 view.setAlpha(1 - position); // 抵消默认的滑动 view.setTranslationX(pageWidth * -position); // 按比例缩小图片 float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position)); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); } else { // (1,+Infinity] // 页面向右离开屏幕 view.setAlpha(0); } }}3.mViewPager.setPageTransformer(true, new DepthPageTransformer());
0 0
- Android官方提供的两种viewpager滑动动画
- Android 具有动画的 Viewpager滑动CircleIndicator指示器
- Android两行代码搞定ViewPager的过渡动画
- android viewpager滑动视差动画(parallax)
- ViewPager 实现左右循环滑动图片的两种方法
- 记录两个官方的ViewPager动画
- Viewpager 选项卡的滑动动画效果
- ViewPager 滑动条 动画
- Viewpager 滑动动画笔记
- ViewPager滑动动画
- 【Android】可控滑动的Viewpager
- Android ViewPager切换的N种动画
- Android ViewPager切换的N种动画
- Android ViewPager切换的N种动画
- 2014-11-3Android学习------利用ViewPager实现滑动的菜单--------GIF动画实现
- Android ViewPager的动画效果
- [Android实例] ViewPager多页面滑动切换以及动画效果
- [Android实例] ViewPager多页面滑动切换以及动画效果
- x264_scan8 的理解
- 解读思科2014-19年全球移动互联网发展趋势报告(1)
- Java面试题之==和equals的区别
- Hibernate学习笔记 - Session.evict(user)方法
- 5.3.3 局部变量的初始化和内存中的运行机制
- Android官方提供的两种viewpager滑动动画
- Enum 权举最好放在类以外
- HTML5之视频功能
- 运行STASM所需要的Visual Studio 2010和OpenCV的配置方法
- 兴趣网站
- 开发社交应用的利器——Ejabberd 一瞥
- centos7防火墙导致java程序访问mongodb3.0.1时报错的问题
- JAVA学习笔记(五十九)- Socket编程
- HDOJ 1210 Eddy的洗牌问题 题解