在Android手机上实现阅读器翻页效果

先了解各个字母表示的含义:A-把书页翻起来后看到的背面区域B-把书页翻起来后看到的下一页的一角C-当前页的可见部分。a-手指滑动页角到达的位置b-当前页翻起来后与书本垂直边的交点c-当前页翻起来后与书本水平边的交点m-翻页的起始点n-书本右上角t-书本左上角o-直角坐标系原点为了能在翻页的过程中看到下一页的部分内容,在每次翻页之前必须准备两张页面,一张是当前页,另一张是下一页。翻页的过程就是对这两张页面的剪切,组合过程。看到图你也应该知道,这是一道什么几何题目了,好,那我们再把高中几何复习一遍吧。通过直线am的中点求它的中垂线bc,直线bc与书本的垂直边和水平边分别交于点b,点c,给出a点的动态坐标(x,y),求出b,c坐标。知道了a,b,c,m四点的坐标,就可以把四边形abcm用直线连起来,并把四边形abcm分成A,B 两部分,A部分表示书页翻起来后看到的当前页的背面区域,B部分表示书页翻起来后看到的下一页的部分区域。在java的Graphics2D这个类里面有clip这样的方法来达到剪切图片的目的,这个方法需要传入的是一个GeneralPath这样的对象,他表示的是在一个图片上要剪切的一个封闭区域,而这里,我们要剪切的区域包括:1.当前页的可见部分,是一个多边形ocabnt。2.当前页翻起来的背面,这是个三角形acb。3.下一页的一角,也是个三角形cmb。这三个部分剪切完毕,组合到同一个画布里面就能形成这样的翻页效果了。当然,在翻页的过程中,因为要根据手指的触点坐标来随时刷新界面的显示,即重画界面,需要重新计算b,c两点的坐标,根据最新的坐标重画各条直线,剪切直线包围起来的区域。界面的刷新频率根据自身需要调整。如果你觉得直线围起来的区域过于生硬,不太像真实的翻页效果。没关系,你还可以使用贝塞尔曲线来连接交点a,b,c。Android上有画贝塞尔曲线的方法,Path类里面的quadTo(x1, y1, x2, y2)。实际效果就像这样。

android 阅读器自动滚动,在Android手机上实现阅读器翻页效果.doc相关推荐

  1. android 阅读器自动滚动,Android编程实现小说阅读器滑动效果的方法

    本文实例讲述了Android编程实现小说阅读器滑动效果的方法.分享给大家供大家参考,具体如下: 看过小说都知道小说阅读器翻页有好多种效果,比如仿真翻页,滑动翻页,等等.由于某种原因,突然想写一个简单点 ...

  2. linux+手机+翻页,在Android手机上实现阅读器的翻页效果

    本篇文章来谈谈怎么使用java实现翻页效果,就像电子阅读器那样. 现在先来看看翻页的原理图: 先了解各个字母表示的含义: A-把书页翻起来后看到的背面区域 B-把书页翻起来后看到的下一页的一角 C-当 ...

  3. Delphi 10.4.2 轻松实现Android/IOS txt小说电子书阅读器应用APP翻页效果

    Delphi 10.4.2是最新版本的跨平台本机应用开发工具,一套代码可编译到五个操作系统上:iOS.Android.Windows.macOS 和 Linux: 本代码仅仅数十行即可轻松实现Andr ...

  4. android文字多行滚动显示,Android TextView多行文本滚动实现

    Android中我们为了实现文本的滚动可以在ScrollView中嵌入一个TextView,其实TextView自己也可以实现多行滚动的,毕竟ScrollView必须只能有一个直接的子类布局.只要在l ...

  5. Android 实现答题器功能(通过手势实现翻页效果)

    Android 实现答题器功能(通过手势实现翻页效果) 1.问题描述 Android答题器的实现主要使用了ViewFilpper和GestureDetector来实现. 2.实现思路 把Activit ...

  6. Android 实现答题器功能(通过手势实现翻页效果)...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51305933 Android 实现答题器功能 ...

  7. Android 实现书籍翻页效果----升级篇

    自从之前发布了<Android 实现书籍翻页效果----完结篇 >之后,收到了很多朋友给我留言,前段时间由于事情较多,博客写得太匆忙很多细节地方没有描述清楚.所以不少人对其中的地方有不少不 ...

  8. android 电子书源码,翻页效果

    这两天模仿着做了一个apk电子书的应用,有翻页效果,本来是想学一下自己写的,无奈,最后偷懒使用了别人写的 翻页类 PageWidget.java 下面是工程文件的结构 这个是写的类的包结构,PageV ...

  9. Android翻页效果原理实现之翻页的尝试

    炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...

最新文章

  1. jenkins打完包在哪里
  2. python如何读取excel数据-python怎么读取excel中的数值
  3. 【频谱共享】基于认知无线电的VCG拍卖机制频谱共享算法的MATLAB仿真
  4. 计算机系学生的简单立体宿舍装潢大赏
  5. js中几种实用的跨域方法原理详解
  6. 【算法竞赛学习】二手车交易价格预测-Baseline
  7. 凭什么,Netty能成为最流行的NIO框架?
  8. PyQt5学习--基本窗口控件--QLabel
  9. 免费赠送2本新书《iOS程序员面试笔试真题与解析》
  10. C的xml编程-libxml2(转)
  11. C#_MVC 自定义AuthorizeAttribute实现权限管理
  12. 中医电脑cac处方系统 v1.3.3.8 免费
  13. 使用LSTM生成序列、自动问答使用?分割即可!
  14. VvvebJs可视化前端设计开发工具
  15. 累计独立访客(UV)不低于 1000 是什么意思,怎么推广呢解决1000呢?
  16. word如何去掉背景色
  17. minio-operator部署minio服务,并用Java客户端访问minio
  18. 知乎spark与hadoop讨论
  19. 【备忘】【No5】微信公众平台开发入门到实战开发视频教程(Java+PHP)
  20. mysql 分析explain命令执行sql的计划

热门文章

  1. word2019技巧:段落的段前段后单位行设置为磅
  2. panda经典四道题期末考核分享
  3. VMware环境下修改Centos qcow2格式镜像
  4. 计算机开机后黑屏 只有鼠标,电脑黑屏只有鼠标箭头怎么办?最简单的解决方法告诉你...
  5. 基于ng-alain做国际化
  6. Oracle实验二 表的查询和更新
  7. java面试的笔试题
  8. linux查看3306端口号是否打开
  9. geoJson全国各省市地图json数据获取
  10. java 定义一个学生类,利用无参和带参方法调用