今天这活儿来得挺突然的。早上老婆刷手机时嘟囔了一句:“安卓相册翻个照片卡得要命,想找去年在青岛拍的日落翻得手酸”,我一拍大腿说干脆给你搓个专属相册得了,名字就叫《她的新回忆安卓》——当时还没想好咋做。
第一步:翻出落灰的安卓书
书架底下那本《第一行代码》都积灰了,翻到Kotlin章节哗掉渣。从Android Studio装新版开始就卡住了,下载个模拟器等得我泡面都坨了。新建项目时手滑选错模板,建了个带导航抽屉的,结果发现老婆想要底部导航栏,又吭哧吭哧重构布局。
第二步:相册核心功能开搞
加载本地照片折腾死人。先是用了老方法,结果加载三百张照片直接卡成PPT。连夜翻StackOverflow,看到有人说“RecyclerView+Glide黄金搭档”,赶紧试了下:
- Glide加载图片时加了override(300)缩略图
- 给RecyclerView塞了个GridLayoutManager
- 死活不显示图片,发现漏了读存储权限
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
最坑爹的是Android 10之后必须用MediaStore,查官方文档看得眼冒金星,抄了段代码才把相册文件夹扒拉出来。
第三步:打磨喂猫功能
老婆提需求说要做个“回忆放映机”,随机跳出三年前同天照片。没想到撞上三个坑:
- 日期对比时发现系统存的是时间戳,拿SimpleDateFormat转格式转得头疼
- 随机算法抽到空文件夹直接闪退
- 动画效果瞎加scale属性把图片挤变形了
气得我把键盘敲得噼里啪响,粗暴解法是加了个if (*())才保住老命。
第四步:真机测试翻车现场
在模拟器跑得溜溜的,装到老婆旧手机上直接黑屏。连着AS调试看到红字报错“Only fullscreen activities can request orientation”,血压瞬间飙升。查了俩小时才发现是Android 8.0的祖宗规范,manifest里删了句android:screenOrientation=”portrait”才活过来。
成品长这样
现在打开APP是这样的:
- 首页瀑布流照片按月份自动分组
- 滑到最底端加载时出个猫咪转圈动画
- 点开大图双指缩放还有点卡顿
- 回忆放映按钮藏在了右上角汉堡菜单里
老婆用着新相册说了句“比自带的好划拉”,我瘫在沙发上感觉老腰都要断了。这破项目从装环境到交工整整改了六版,深刻体会到安卓开发就是不断填坑的过程。不过看着她在翻老照片时突然笑出声的样子,下次大概还会继续造轮子——虽然我打死都不想做相册视频播放功能了。