Android平台中的二种翻页效果实现。

第一种翻页效果如下:

实现原理:

当前手指触摸点为a,则 a点坐标为(ax,ay), 由三角形acb与三角形cmb为对称三角形并且直线cp为am垂直平分线,则 B点坐标为(ax/2,ay/2)。

作gf垂直于om且cb垂直于am, 三角形cfg与gfm相似,则 cf:gf = gf:mf      cf=(gf * gf) / mf     gf长度为g点纵坐标     mf长度为g点横坐标

cf长度可求    c点坐标可求 由c点、g点可确定过两点间的直线, 当该直线中x=0时求出与y足交点。

 第二种翻页效果

 实现原理:

 使用贝赛尔曲线。曲线有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。

根据第一种翻页效果原理可以确定a、e、h、f、g ,由eh平行于cj且af垂直于eh,则 af垂直于cj则三角形egf相似于三角形cnf 则有ef:cf = gf:nf 。

设n为ag中点 则有cf=(3/2)*ef ,则c点坐标可求 由c点、k点坐标已知可知过两点间的直线

由该直线可计算与y轴相交点j 由a、e、c、j可计算两条直线的相交点b 同理可求点k。

在Android中的具体实现步骤:

起始页展示

1.创建屏幕尺寸的bmp 2.将图片转化为canvas 3.获取起始页面数据 3.在canvas中绘制起始页数据 4.在当前视图中复写onDraw进行重绘出bmp对象

翻页处理

1.初始化时创建两个bmp(bmp1、bmp2)并将其转换为canvas(canvas1、canvas2)

2.获取手势首次触摸的区域 (例:当首次点击屏幕的位置x<50&&y<50则为左上角)

3.根据首次点击区域判断需要展示的数据(例:首次点击处于左侧区域【左上、左下】的则判断操作为下一页操作)

4.获取下一页中数据并绘制出来在canvas2中

5.根据1中获取的区域位置调用起始动画使视图移动到手势首次点击位置

6.获取手势每次移动的坐标并根据移动坐标计算绘制的各个点的坐标

7.每次移动刷新视图

转载于:https://www.cnblogs.com/xiaoran1129/archive/2012/11/14/2769286.html

android翻页实现原理相关推荐

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

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

  2. Android翻页效果原理实现之引入折线

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 尊重原创 ...

  3. Android翻页入门

    1. 前言 欲整理和实现Android端的翻页效果实现,并想将之整理打包成为一个成熟的第三方插件.不知道会用多少时间来实现这个功能,虽然网上已经有现成的项目,以及对之的解析,但本人从学习的角度来说,不 ...

  4. Android 实现书籍翻页效果----原理篇

    之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在android上也有像laputa和ireader等应用实现有这个特效,在网上搜索了一下好像也没有现成的例子,所以自己动手实现了一个,现 ...

  5. Android 翻页效果 电子书 (转)

    转载请注明来自: 5进制空间-android区 相信做电子书的同学,都遇到过翻页动画的需求吧,如果你不满足与点击滑动翻页的话,这边文章应该能够帮助到你. 先上个效果图: [img]http://www ...

  6. Android翻页入门学习(三)阴影绘制

    对于阴影的绘制,首先需要使用的是渐变色的绘制,在Android中,可以使用GradientDrawable对象中的setBounds和draw来进行绘制. 参考文档如下:https://develop ...

  7. 使用js实现微信小页面翻页的原理介绍

    为什么80%的码农都做不了架构师?>>>    文中要介绍的内容是四个手机页面,手指向上或者向下滑动可以实现翻页的功能.由于代码比较简短,可能存在许多bug,思路可供大家参考. 1. ...

  8. android 翻页动态效果,Android 实现翻书的动画效果

    当你们看到这标题时,多少觉得好牛逼哦,其实我想说的是,这只是一个思路,只是简单的三维空间旋转.为什么要写这个博客呢,最近在面试时,面试官突然问这样的效果怎么实现的,当时我说用动画,他说具体点,我说用R ...

  9. android 翻页卷曲效果 电子书翻页

    先上个效果图: 效果还是很不错的,不过与ibook那个效果比起来,还是有差距的.应为这个没用到openGL做3D效果,只是用的2d的canvas画布去画的view,添加了阴影效果,还是挺有立体感的.而 ...

最新文章

  1. c#百度排名点击器编写 及webser 填表.
  2. 如何压缩PDF文件大小,满足各种上传大小要求
  3. 【错误记录】Flutter 插件不兼容 ( requires Flutter SDK version >=1.22.0 <2.0.0, url_launcher >=5.7.7 <6.0.0- )
  4. BeanFactory not initialized or already closed - call 'refresh' before accessing beans
  5. 类似于京东商城等的商品分类搜索筛选功能实现
  6. verilog赋多位值_verilog赋值
  7. html图片自适应浏览器高度,css如何高度自适应浏览器高度?
  8. nginx 配置php版本号,隐藏Apache、nginx和PHP的版本号的配置方法
  9. Q-learning家族【强化学习】
  10. 信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
  11. Failed to connect to github.com port 443 after 21505 ms: Timed out
  12. Android 第一行代码
  13. 贝叶斯因果网络_因果关系和贝叶斯网络
  14. 【linux】运维之LAMP
  15. a豆的使命:每一位年轻人都值得珍重
  16. 关于北美信号T1和欧洲信号E1的计算
  17. Python爬取豆瓣读书Top250(正则表达式)
  18. Number Sequence/数字序列
  19. API接口名称(item_get - 根据ID取商品详情)[item_search,item_get,item_search_shop等]
  20. [USACO17OPEN Pt T2]Switch Grass 切换牧草

热门文章

  1. 【转贴】Lua 5.0 参考手册
  2. 翻动100万级的数据
  3. topics in innovation management
  4. new star program
  5. 剑桥大学Raven系统
  6. 关于联合利华:我的第一次正式实习的单位!撒花!
  7. break prefab instance的原理
  8. awk中如何使用shell的环境变量
  9. Centos 7网络属性配置及命令
  10. 《团队——科学计算器代码设计规范》