android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果
画廊在很多的App设计中都有,如下图所示:
该例子是我没事的时候写的一个小项目,具体源码地址请访问https://www.easck.com/>
使用方式
布局中添加该自定义控件
xmlns:tools="http://www.easck.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/cover"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
代码中设置
代码中设置分为以下几个步骤:
•查找控件
•初始化数据
•将需要显示的数据设置到控件上
•设置滑动监听
public class MainActivity extends AppCompatActivity {
private CoverFlowViewPager mCover;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCover = (CoverFlowViewPager) findViewById(R.id.cover);
// 初始化数据
List list = new ArrayList<>();
for(int i = 0;i<10;i++){
ImageView img = new ImageView(this);
img.setBackgroundColor(Color.parseColor("#"+getRandColorCode()));
list.add(img);
}
//设置显示的数据
mCover.setViewList(list);
// 设置滑动的监听,该监听为当前页面滑动到中央时的索引
mCover.setOnPageSelectListener(new OnPageSelectListener() {
@Override
public void select(int position) {
Toast.makeText(getApplicationContext(),position+"",Toast.LENGTH_SHORT).show();
}
});
}
/**
* 获取随机颜色,便于区分
* @return
*/
public static String getRandColorCode(){
String r,g,b;
Random random = new Random();
r = Integer.toHexString(random.nextInt(256)).toUpperCase();
g = Integer.toHexString(random.nextInt(256)).toUpperCase();
b = Integer.toHexString(random.nextInt(256)).toUpperCase();
r = r.length()==1 ? "0" + r : r ;
g = g.length()==1 ? "0" + g : g ;
b = b.length()==1 ? "0" + b : b ;
return r+g+b;
}
}
实现原理
实现过程中有两个难点:
•如何实现滑动过程中的放大与缩小
•如何显示ViewPager中未被显示的页面
如何实现滑动过程中的放大与缩小?
在设置每一个ViewPager 的页面时,对每一个页面都设置一个固定的padding值,这样每个页面都会显示缩小状态。同时ViewPager设置addOnPageChangeListener(),滑动监听,在该滑动监听中会回调ViewPager的滑动的状态,滑动的偏移量等,根据滑动的偏移量进行放大缩小。及根据padding值设置控件的显示大小
android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果相关推荐
- android切换页面上滑动动画,Android ViewPager多页面滑动切换以及动画效果
评论 #28楼[楼主] 2012-06-01 14:27D.Winter @孤寒江雪 我猜 要么在头尾各再加入一个页卡 在页卡切换监听中判断,如果选中了头尾的页卡,就返回到相邻的那个页卡.头尾页卡的界 ...
- Android ViewPager多页面滑动切换以及动画效果---换view
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...
- android view禁止右滑,ViewPager 禁止左右滑动完美解决
package cn.fht.widget; import android.content.Context; import android.support.v4.view.ViewPager; imp ...
- [Android实例] ViewPager多页面滑动切换以及动画效果(精)
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...
- android 百度地图开发 怎么减小包的大小,最新的百度地图Android开发包中,如何隐藏右下角的放大缩小控件...
2016-02-24 回答 // 隐藏缩放控件 int childcount = mmapview.getchildcount(); view zoom = null; for (int i = 0; ...
- ViewPager多页面滑动切换以及动画效果
2019独角兽企业重金招聘Python工程师标准>>> 一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横 ...
- IDEA设置滚动滑轮、鼠标滚轮上下滑动放大缩小字体、Ctrl+0恢复原始字体大小
ctrl+0恢复的默认字体大小可以通过下面的这个位置设置
- Android自带组件之Gallery 实现3D画廊效果
1: 首先我们要了解到这个该控件的常用属性: 如图: 2:通过该组件定义属于我们自己的组件 iphone 中的coverflow中图片切换是有旋转和缩放效果的,而自带的gallery中并没有实现.因此 ...
- android圆球触摸怎么实现,Android利用ViewPager实现带小圆球的图片滑动
Android利用ViewPager实现带小圆球的图片滑动 发布时间:2020-10-02 05:55:29 来源:脚本之家 阅读:69 作者:antimage08 在上文实现的带小圆球的图片滑动的通 ...
最新文章
- php imap_open效率低,求救,为什么 imap 连接这么慢
- 看了看カルタグラ~魂ノ苦悩~(カルタグラ~ツキ狂イノ病~PS2移植版)的官网...
- VTK:Dijkstra 图形测地线路径用法实战
- 实现 LRU 缓存机制
- 阿诗玛的传说|阿诗玛民间故事
- HTTP之长连接与短连接(C++ Qt框架实现)
- C++static类静态成员函数及变量解析
- Installshield2008教程
- LabVIEW开发实战:Labview简介
- win10下载ios及安装方法
- html重置css样式,css样式重置 移动端适配
- 2014校园招聘之一(8月华为机试题)
- python画聚类树状图_影像组学学习笔记(36)-聚类树状图Dendrogram的python实现
- VMware 终端安装 VMware Tools 以及 开启共享文件夹
- newifi无盘服务器,newifi 3 padavan纯净版固件,2.4G挺稳定,2019年5.09更新
- SQL千万级大数据量查询优化
- 任正非谈鸿蒙系统失误,任正非谈鸿蒙:华为鸿蒙将比安卓快 60%
- Windows之使用批处理创建快捷方式到桌面(符号链接)
- 2016版excel_有win10系统excel打开慢的问题来看
- 【Cxinny】Koa
热门文章
- Cygwin中如何像在Ubuntu中一样安装软件
- 特征计算 - Jaccard 相似系数与 Python 代码实现
- 21届校招薪资曝光:严重倒挂老员工!
- 动手做个DialoGPT:生成式多轮对话模型
- 计算机史上首篇教你从算法问题提炼算法思想的文章
- Android官方开发文档Training系列课程中文版:OpenGL绘图之图形绘制
- 工程实践:基于规则模式的军事和医药领域知识图谱问答快速实现
- 【ACL2020】Relabel the Noise: Joint Extraction of Entities and Relations via Cooperative Multiagents
- 委托、Lambda表达式、事件系列07,使用EventHandler委托
- 08.MyBatis整合Log4j