android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果

画廊在很多的App设计中都有,如下图所示:

225254HH-0.gif

该例子是我没事的时候写的一个小项目,具体源码地址请访问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值设置控件的显示大小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能产业发展深度报告:格局、潜力与展望

来源&#xff1a;华泰证券人工智能市场格局人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是利用机器学习和数据分析方法赋予机器模拟、延 申和拓展类人的智能的能力&#xff0c;本质上是对人类思维过程的模拟。AI 概念最早始于 1956 年 的达特茅斯会…

DVA框架统一处理所有页面的loading状态

dva 有一个管理 effects 执行的 hook&#xff0c;并基于此封装了 dva-loading 插件。通过这个插件&#xff0c;我们可以不必一遍遍地写 showLoading 和 hideLoading&#xff0c;当发起请求时&#xff0c;插件会自动设置数据里的 loading 状态为 true 或 false 。然后我们在渲染…

2022第十二届PostgreSQL中国技术大会-核心PPT资料下载

一、峰会简介 本次大会以“突破•进化•共赢 —— 安全可靠&#xff0c;共建与机遇”为主题&#xff0c;助力中国数据库基础软件可掌控、可研究、可发展、可生产&#xff0c;并推动数据库生态的繁荣与发展。大会为数据库从业者、数据库相关企业、数据库行业及整个IT产业带来崭…

Ionic3 环境搭建以及基础配置实现(更新中)

GitHub:https://github.com/Teloi 环境配置输入以下命令安装 Ionic &#xff08;如果刚才设置了淘宝镜像源&#xff0c;可以使用 cnpm 代替 npm&#xff09;&#xff1a;npm install -g ionic需要注意的是&#xff0c;如果之前安装过 Ionic 2 的 beta 版本&#xff0c;需要先卸…

饶毅:脑、物理、化学、 生物、心理认知的交叉研究

本文转自公众号&#xff1a;脑科学学术笔记饶毅&#xff1a;脑、物理、化学、生物、心理认知的交叉研究陈鹏&#xff1a;作为一名科学家&#xff0c;饶老师用分子生物学和遗传学研究神经系统的发育和功能&#xff0c;从果蝇到人脑&#xff0c;从细胞到高级功能&#xff0c;他用…

构建城市大脑的未来标准,9个值得探索的规范

简述&#xff1a;50年来互联网从网状向类脑架构进化并与城市建设结合是城市大脑产生的根源。城市大脑建设是工程问题&#xff0c;但首先也是基础科学问题&#xff0c;掌握科技发展规律是发现和构建城市大脑建设标准的基础。通过总结互联网大脑模型的特征&#xff0c;提出了城市…

马斯克39也火星计划PPT

转自 | 软件定义世界&#xff08;SDX&#xff09;北京时间 5 月 31 日凌晨 3&#xff1a;23 &#xff0c;SpaceX 最新的载人龙飞船在美国肯尼迪航天中心 39A 发射台成功发射&#xff0c;在全球观众的注视下&#xff0c;载着两名宇航员还有一只恐龙玩偶前往国际空间站。 马斯克曾…

如何进入docker容器

在使用docker创建了容器之后&#xff0c;大家比较关心的就是如何进入该容器了&#xff0c;其实进入Docker容器有好几多种方式&#xff0c;这里我们就讲一下常用的几种进入Docker容器的方法。 1.使用docker attach进入Docker容器 Docker提供了attach命令来进入Docker容器。接下来…

麻省理工学院让软体机器人拥有了更好的触觉和空间感知能力

MIT来源&#xff1a; IEEE电气电子工程师当机器人可以抓取薯片且不会压碎它的时候&#xff0c;这就意味着它们越来越先进了。为了做到这一点&#xff0c;需要赋予它们触觉和本体感知 -- 一种对它们在空间位置中的感知。这种感觉在大多数软体机器人中是不存在的&#xff0c;但是…

5G时代,解锁机器视觉与千行百业的“完美关系”

来源&#xff1a; 脑极体在人工智能带来的诸多产业升级价值中&#xff0c;机器视觉毫无疑问将贡献最大的篇幅。无论是在工业、农业、服务业、金融业&#xff0c;基于视觉交互的智能解决方案都在智能化体系中占据了80%以上的比例。而且视觉往往还是知识图谱、语义分割、机器学习…

华为p10plus能用鸿蒙吗,华为P10/P10 Plus对比评测:自家兄弟大对决

华为P10/P10 Plus上手评测&#xff1a;离完美更近一步刚刚华为在巴塞罗那正式推出P10系列新机。早在发布会前&#xff0c;身边不少朋友都问“是等等S8还是选P10”。私以为这问题总有些眼熟。若干年前也是MWC&#xff0c;估计不少人会想&#xff1a;到底是买三星还是HTC。华为P1…

马斯克39页火星计划PPT曝光,我们能学到什么

来源&#xff1a;管理晨读本文ppt部分转载自公众号北美工程师求职顾问新闻报道部分来自于中新社SpaceX公司首席运营官马斯克一直梦想着移民火星&#xff0c;并在之前完成了许多的开发计划和实验。很多人说他是异想天开&#xff0c;也有很多人觉得火星目前没有找到绿色生物&…

Tomcat安装与环境变量的配置

Tomacat的下载 去Tomcat官网下载&#xff0c;我使用的是apache-tomcat-7.0.78的版本。 安装 下载完成之后&#xff0c;我们解压缩到相应的目录。这里我解压缩到d盘下面 1、然后去配置系统的环境变量&#xff0c;新建系统变量&#xff1a; catalina_home 2、下面两个系…

Gartner对于建设「数据中台」的建议

来源&#xff1a;云技术&#xff08;文&#xff1a;Gartner高级研究总监 孙鑫&#xff09;数据中台是中国本土诞生的一个名词&#xff0c;很多企业在“什么是数据中台”和“我要上XX中台”徘徊。其炒作程度跟当年的“大数据” 一词有的一拼&#xff0c;如果用Gartner的炒作周期…

[python 学习] requests 库的使用

1、get请求 # -*- coding: utf-8 -*- import requestsURL_IP "http://b.com/index.php" pyload {cate:1,id:2} headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36} def use_…

直通输出设备 android kodi,【本地播放】利用Kodi媒体播放器轻松实现源码输出DTS到功放...

本帖最后由 PlyFly 于 2015-2-13 22:11 编辑各位花粉注意了&#xff0c;本次发布的B056固件&#xff0c;华为终于修复了DTS源码输出到功放不能正常解码的问题(如功放无声音、破音等等)。经实际测试&#xff0c;不用Kodi就能轻松将DTS源码输出到功放解码&#xff0c;且无任何异常…

3纳米、2纳米、1纳米芯片该如何造?

来源&#xff1a;EETOP编译目前台积电和三星正在加紧开发他们的3nm和2nm技术&#xff0c;目前预计分别在2022年和2024年推出。1nm及以上工艺也正在进行中&#xff0c;但是距离仍然很远。业界希望从3nm开始&#xff0c;从当今的finFET晶体管过渡到全能栅极或称为环绕式栅极FET(G…

字符串数组

字符串&#xff1a;用双引号引起来的多个字符“\0” 是字符串结束标志 字符串的存储方式 字符数组 字符指针 字符串的键盘输入:字符串在输入时只能使用字符数组&#xff0c;不能使用字符指针 字符串的库函数:str系列函数共四种&#xff1a;strcmp&#xff1a;比较是否相同 (从两…

华为鸿蒙os再见了安卓,再见了安卓!华为鸿蒙OS 2.0正式登场,开机只需19秒

大家也都知道&#xff0c;华为从前年开始就被老美打压&#xff0c;以至于无法使用谷歌GMS服务&#xff0c;而从去年开始&#xff0c;华为祭出了鸿蒙OS大招&#xff0c;并且也从1.0版本迭代到了2.0版本&#xff0c;首个搭载机型也由6月份发布的P50提前至近期入网的Mate40 Pro 4G…

万字长文概览深度学习的可解释性研究

作者&#xff1a;知乎—王小贱地址&#xff1a;https://www.zhihu.com/people/wang-xiao-jian-38-81《深度学习的可解释性研究概览》包含3篇内容&#xff0c;作者将用尽可能浅显的语言带领大家了解可解释性的概念与方法以及关于深度学习可解释性工作的研究成果。深度学习的可解…