Viewpager 实现画廊Gallery效果,左右两侧随着滑动一定比例缩放
来源:互联网 发布:守望先锋ps4网络要求 编辑:程序博客网 时间:2024/05/05 09:14
画廊效果系列一:
- 左侧和右侧的页面显示30%,且随着页面滑动,左侧右侧和中间的页面有着不同的变化效果。页面切换很平滑。
效果图如下:
实现原理:
- ViewPager 无限轮播,设置了Integer.MAX_VALUE ; 其实也可以设置为前一张后一张,不过麻烦点儿
- ViewPager 的PageTransformer监听,用于设置ViewPager的页面切换时的动画效果
- clipChildren 属性,用于设定是否约束子控件
遇到的问题
设定clipChildren不起作用
解决办法: 应该把此属性设置给ViewPager的父控件,因为约束是父控件约束子控件,而非平级
加载新页面时,需要手动触动一下,左侧/右侧加载的页面才会变成70%
解决办法:页面初始化的时候就设置大小为70%
核心代码
- ViewPager 布局设定
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" tools:context="ha.houviewpagergallery.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_marginTop="100dp" android:layout_marginLeft="100dp" android:layout_marginRight="100dp" android:layout_width="match_parent" android:layout_height="500dp"></android.support.v4.view.ViewPager></RelativeLayout>
2 . 代码中ViewPager的PageTransformer的监听
pager.setPageTransformer(true, new ViewPager.PageTransformer() { @Override public void transformPage(View page, float position) { page.setScaleY(1f - ((float) (0.3 * Math.abs(position)))); page.setScaleX(1f - ((float) (0.3 * Math.abs(position)))); } });
3 . 预设ViewPager加载的页面的大小
view.setScaleY(0.7f);view.setScaleX(0.7f);
实现源码
欢迎访问我的github,有帮助的话就star/fork一个吧,^3^
https://github.com/liuda555/HouViewPagerGallery
0 0
- Viewpager 实现画廊Gallery效果,左右两侧随着滑动一定比例缩放
- 基于ViewPager实现Gallery画廊效果
- 利用ViewPager实现画廊Gallery效果
- ViewPager+TimerTask实现Gallery画廊效果
- viewPager实现画廊效果,中间显示一张,两侧显示一部分
- Android开发学习之基于ViewPager实现Gallery画廊效果
- Android开发学习之基于ViewPager实现Gallery画廊效果
- Android画廊效果-Gallery和ViewPager不同实现
- Android viewpager 实现画廊效果 左右可见部分子view
- ViewPager实现画廊效果
- ViewPager 实现画廊效果
- 自定义抽屉效果实现左右缩放滑动
- RecyclerView 实现gallery画廊效果
- RecyclerView 实现gallery画廊效果
- Android使用ViewPager实现左右滑动效果
- 使用ViewPager实现左右滑动效果
- 使用ViewPager实现左右滑动效果
- TabIndicator+ViewPager实现左右滑动菜单效果
- Android的JNI使用
- 深入理解javascript原型和闭包(1)——一切都是对象
- 进程学习:4-守护进程的出错记录
- CUDA学习笔记
- 热区
- Viewpager 实现画廊Gallery效果,左右两侧随着滑动一定比例缩放
- 4. 控制器
- was not registered for synchronization because synchronization is not active
- 服务器向手机设置代码分析
- AFNetworking 3.0 源码阅读笔记(七)
- nginx+Windows配置flv,mp4视频流任意拖动
- Android通过HTTP协议实现断点续传下
- Android开源项目:GifView——Android显示GIF动画
- ActiveMQ的 HR + LB (高可用 + 负载均衡)部署方案