Viewpager的PageTransformer 不执行问题
来源:互联网 发布:电脑文件恢复软件 编辑:程序博客网 时间:2024/06/06 12:50
因为项目需求,要实现滑动大图且带影院效果,效果如下图所示:
使用Viewpager来实现的,因为通过实现PageTransformer 接口,比较容易实现左右滑动的动画效果。由于项目里使用的android-support-v4.jar版本太老了 ,只有377kb,肯定小于android-support-v4 version13.0.0,此jar包有个bug,就是初次显示viewpager时,动画效果没有执行(默认只有滑动时动画才会执行到),这样就导致两张图片连在一起,没有突出中间一张的效果了,如下图:
问题的解决方法本来很简单,就是用个高版本的jar包(support-v4-18.0.0及以上都可以)替换老的jar包就行了。
但是项目里一旦替换了jar,就会报65536那个错误,就是方法数太多了,没办法,只能投机取巧,在使用现有的老jar包基础上去改掉这个bug,最终的解决办法是,加载完数据后,手动调用一遍以下代码:
if (mAdapter.getCount() > 1)
{
mTransformer.transformPage(mViewPager.getChildAt(1), 1);
}
当然当只有一条数据时,也就不存在这个bug了。
mTransformer的实现如下:
public class ScalePagerTransformer implements ViewPager.PageTransformer{ public static final float MAX_SCALE = 1.0f; public static final float MIN_SCALE = 0.75f; public static final float MIN_ALPHA = 0.3f; @Override public void transformPage(View page, float position) { if (position < -1) { position = -1; } else if (position > 1) { position = 1; } float tempScale = position < 0 ? 1 + position : 1 - position; float slope = (MAX_SCALE - MIN_SCALE) / 1; // 一个公式 float scaleValue = MIN_SCALE + tempScale * slope; page.setScaleX(scaleValue); page.setScaleY(scaleValue); if (position > -1 && position < 1) { // 加渐变透明效果,中间的view完全不透明 page.setAlpha((1 - MIN_ALPHA) * tempScale + MIN_ALPHA); } else { page.setAlpha(MIN_ALPHA); } if (Build.VERSION.SDK_INT < 19 && page.getParent() != null) { page.getParent().requestLayout(); } }}
0 0
- Viewpager的PageTransformer 不执行问题
- ViewPager的PageTransformer用法
- 高大上的ViewPager的PageTransformer
- ViewPager切换动画PageTransformer的使用
- PageTransformer实现个性的ViewPager切换动画
- Android ViewPager的切换动画效果PageTransformer
- ViewPager切换动画PageTransformer的使用
- 解决ViewPager设置切换动画PageTransformer后子页无法触摸的问题
- ViewPager.PageTransformer详解——打造千变万化的viewPager
- ViewPager,OnPageChangeListener及PageTransformer
- Android viewpager 动画 PageTransformer
- ViewPager PageTransformer探索
- ViewPager之PageTransformer接口
- 使用ViewPager.PageTransformer自定义ViewPager
- ViewPager使用PageTransformer的各种切换的效果
- Android 实现个性的ViewPager切换动画 实战PageTransformer
- Android 实现个性的ViewPager切换动画 实战PageTransformer
- ViewPager的PageTransformer 实现各种Page变换动画效果分析
- NodeJS实战——创建基础应用并应用模板引擎
- UILabel 添加下划线,改变字体颜色,NSMutableAttributedString实现富文本
- struts2上传类型、大小限制以及国际化的问题
- 【bzoj1877】【SDOI2009】【晨跑】【费用流】
- Java使用SOAP获取webservice实例解析
- Viewpager的PageTransformer 不执行问题
- ORA-01861: 文字与格式字符串不匹配
- 定时器
- spring-data-jpa Specification 拼接复杂查询
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
- 企业Linux系统管理员常用命令大全实例解析(2)
- caffe Data layer prefetch queue empty重启
- 71道经典Android面试题和答案,重要知识点都包含了
- vector 详细用法 C++