书本翻页实现机制、方案及说明
1. 翻页项目:https://github.com/harism/android_page_curl
2. Android OpenGL ES:简明开发教程
3. CurlAcitivity.java(文件内包含多个类)代码说明:
3.1 首先需要确定照片书在屏幕的位置大小,SizeChangedObserver.java:
默认距离上边距(curlViewMarginTop)为屏幕的0.25(第一次循环就会由0.24增长到0.25),默认距离下边距(curlViewMarginBottom)为屏幕的0.12(第一次循环就会由0.11增长到0.12),然后根据上下边距和屏幕大小(curlview为全屏,屏幕大小即curlview的高度)算出屏幕上相册的高度,然后和模板里product的height的比率就是coverPageScreenAndRealRatio,结合相册高度和上下位置,就可以计算相册左右的边距curlViewMarginLeftOrRight。但因为相册很可能非常的宽,当上下确定时,左右可能会超出屏幕,所以这里用一个循环,当当前的左右边距为负数,即超出了屏幕时,就将上下边距加大,相册屏幕高度变小,最终得到一个合适的左右边距。
3.2 生成每一个页面的bitmap,PageProvider.java:
3.2.1.1 入口方法updatePage():
当页面初始化、用户翻页操作时,CurlView里都会调用updatePages方法,updatePages方法会调用PageProvider里的updatePage方法,返回当前页面的正反面的bitmap。
3.2.1.2 loadBitMapWithCache方法,主要功能是返回当前页面的bitmap,但也包括第一次生成所有相册页面的缩略图,将前后的页面装载到内存等功能。
3.2.1.3 preLoadPageImageOnCache方法是为了提高用户翻页的流畅性,确保当前页面前后的页面已经预加载到内存中的方法
3.2.1.4 writeOnToSDCard方法生成目标页码的缩略图,并加载页面到LruCache。
3.2.1.5 loadBitmap方法:根据模板生成缩略图。
4. CurlView中的onTouch方法:
翻页的行为:
拖拽速度足够时,按照拖拽的方向翻页;拖拽速度不够时按照手指最后的位置判断,手指在相册中线右侧则右翻,左侧则左翻,符合重力规律。
之前有较复杂的逻辑,当时需求是直接点击页面标题就可以进入改变标题的页面,现在已注释,不再赘述。
python 自动小红书 小红书怎么自动翻页
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【爬虫工具】2024研发!批量采集小红书对标账号发布笔记
用python开发的小红书博主笔记采集工具
小红书对标账号 小红书笔记采集 抓取小红书 小红书采集工具 -
【爬虫软件】我用python开发的小红书蒲公英采集工具,高效筛选优质博主!
用python开发的小红书蒲公英平台采集软件工具。支持筛选粉丝数、笔记类型、报价范围等,助力品牌商高效筛选优质博主。
爬取小红书蒲公英 采集蒲公英平台 小红书蒲公英