这几天,继续看源代码,主要是引导界面设计、垂直viewpager设计、图文下拉listview和简单的动画制作。
看一下引导界面的设计:
使用了四个fragment存放四个界面的布局,布局中使用背景图片构成界面元素,最后一个加了按钮,四个fragment组成列表传入adapter作为数据源提供给viewpager,同时,为了实现底部原点的变化,在viewpager注入了监听器,每当移动完一个页面,对底部的原点进行更新。底部远点采用了radiobuttongroup的布局,每一个radiobutton根据是否选中有两种图形,默认被选中,图形显示淡色的原点图片,当前移动的图片,在监听器设置图形显示深色的原点图片。
垂直viewpager的设计:
最简单也是最粗暴的方法,重写viewgroup,按照viewpager,更改Scroller的运动方向就行了
简单的动画制作:
android本身支持帧动画和补间动画,我这里先研究了补间动画,android的补间动画支持渐变、旋转、移动、收缩四种形式,在速度上支持加速、减速等动画效果,具体见下面的代码地方(ps:用了大量的findbyid,习惯使用dagger的代码注入们别生气)
列表不居中图片下拉伸缩
作为有趣的一种布局,怎么可以放过。
在这种布局中,图片作为列表元素的成员位于最上面,下面是常见的列表布局(字符串、图文等) ,下拉列表到达顶部越界的时候,图片可以放大到一定大小,当手指离开界面的时候,图片恢复原来的大小。
设计上,重写listview,并且实现滚动监听。对listview拉过界 、 手指释放的两个事件进行监听,图片放大和收缩需要设置图片的伸缩性。当listview拉过界,重新设置图片的高(有最大值),手指松开的时候,通过自定义一个动画,动画在动作期间跟随时间不断重新设置图片的高,直到时间用完,图片恢复正常的高度。下载地址:亲测点击这里