ViewPager的两种切换效果
来源:互联网 发布:淘宝刷销量怎么刷 编辑:程序博客网 时间:2024/06/07 10:21
用法: babyrecipe_vp.setPageTransformer(true, new DepthPageTransformer());// babyrecipe_vp.setPageTransformer(true, new ZoomOutPageTransformer()); 两个类分别如下:
import android.view.View;/** * ViewPager切换效果1 * * @author liubo * */public class DepthPageTransformer implements android.support.v4.view.ViewPager.PageTransformer { private static final float MIN_SCALE = 0.75f; public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1)// This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0]// Use the default slide transition when moving to the left page view.setAlpha(1); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1]// Fade the page out. view.setAlpha(1 - position);// Counteract the default slide transition view.setTranslationX(pageWidth * -position);// Scale the page down (between MIN_SCALE and 1) float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position)); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); } else { // (1,+Infinity]// This page is way off-screen to the right. view.setAlpha(0); } }}
import android.annotation.SuppressLint; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.View;/** * ViewPager切换动画2 * * @author liubo * */public class ZoomOutPageTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.85f; private static final float MIN_ALPHA = 0.5f; @SuppressLint("NewApi") public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); Log.e("TAG", view + " , " + position + ""); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 1) // a页滑动至b页 ; a页从 0.0 -1 ;b页从1 ~ 0.0 { // [-1,1] // Modify the default slide transition to shrink the page as well 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); } // Scale the page down (between MIN_SCALE and 1) view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); // Fade the page relative to its size. view.setAlpha(MIN_ALPHA + (scaleFactor - MIN_SCALE) / (1 - MIN_SCALE) * (1 - MIN_ALPHA)); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } }}
0 0
- ViewPager的两种切换效果
- ViewPager的切换效果
- ViewPager官方的切换效果
- ViewPager 的切换动画效果
- ViewPager的动画切换效果
- 两种简易的图片切换效果
- ViewFlipper实现ViewPager的页面切换效果
- ViewPager千变万化的图片切换效果
- Android ViewPager的切换动画效果PageTransformer
- ViewPager页面切换效果
- 优化ViewPager切换效果
- ViewPager 实行切换效果
- viewpager立方体切换效果
- ViewPager自定义切换效果
- viewpager切换效果
- ViewPager不要切换效果
- ViewPager花式切换效果
- ViewPager 自动切换广告效果
- 全面解读Java NIO工作原理
- 安卓与硬件反复连接,导致的数据问题
- Linked List Random Node
- ECharts图表使用实例(多条折线图)--JAVA
- Apache Hadoop集群设置示例(带虚拟机)
- ViewPager的两种切换效果
- Linux实用技巧-CURL实现HTTP的GET POST方法
- 如何在TabBarController push时隐藏,pop返回时显现。
- Netflix源码解析之Ribbon:负载均衡器通过Eureka获取动态后端服务列表
- UILabel怎么自定义字体颜色?
- HDU/HDOJ 1015(dfs或暴力枚举)
- 关于ORACLE 的INSERT ALL
- iphone程序启动界面问题
- 日志系统jar包:slf4j-api, slf4j-log4j12以及log4j