android翻页实现原理
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翻页实现原理相关推荐
- Android翻页效果原理实现之翻页的尝试
炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成 ...
- Android翻页效果原理实现之引入折线
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 尊重原创 ...
- Android翻页入门
1. 前言 欲整理和实现Android端的翻页效果实现,并想将之整理打包成为一个成熟的第三方插件.不知道会用多少时间来实现这个功能,虽然网上已经有现成的项目,以及对之的解析,但本人从学习的角度来说,不 ...
- Android 实现书籍翻页效果----原理篇
之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在android上也有像laputa和ireader等应用实现有这个特效,在网上搜索了一下好像也没有现成的例子,所以自己动手实现了一个,现 ...
- Android 翻页效果 电子书 (转)
转载请注明来自: 5进制空间-android区 相信做电子书的同学,都遇到过翻页动画的需求吧,如果你不满足与点击滑动翻页的话,这边文章应该能够帮助到你. 先上个效果图: [img]http://www ...
- Android翻页入门学习(三)阴影绘制
对于阴影的绘制,首先需要使用的是渐变色的绘制,在Android中,可以使用GradientDrawable对象中的setBounds和draw来进行绘制. 参考文档如下:https://develop ...
- 使用js实现微信小页面翻页的原理介绍
为什么80%的码农都做不了架构师?>>> 文中要介绍的内容是四个手机页面,手指向上或者向下滑动可以实现翻页的功能.由于代码比较简短,可能存在许多bug,思路可供大家参考. 1. ...
- android 翻页动态效果,Android 实现翻书的动画效果
当你们看到这标题时,多少觉得好牛逼哦,其实我想说的是,这只是一个思路,只是简单的三维空间旋转.为什么要写这个博客呢,最近在面试时,面试官突然问这样的效果怎么实现的,当时我说用动画,他说具体点,我说用R ...
- android 翻页卷曲效果 电子书翻页
先上个效果图: 效果还是很不错的,不过与ibook那个效果比起来,还是有差距的.应为这个没用到openGL做3D效果,只是用的2d的canvas画布去画的view,添加了阴影效果,还是挺有立体感的.而 ...
最新文章
- c#百度排名点击器编写 及webser 填表.
- 如何压缩PDF文件大小,满足各种上传大小要求
- 【错误记录】Flutter 插件不兼容 ( requires Flutter SDK version >=1.22.0 <2.0.0, url_launcher >=5.7.7 <6.0.0- )
- BeanFactory not initialized or already closed - call 'refresh' before accessing beans
- 类似于京东商城等的商品分类搜索筛选功能实现
- verilog赋多位值_verilog赋值
- html图片自适应浏览器高度,css如何高度自适应浏览器高度?
- nginx 配置php版本号,隐藏Apache、nginx和PHP的版本号的配置方法
- Q-learning家族【强化学习】
- 信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
- Failed to connect to github.com port 443 after 21505 ms: Timed out
- Android 第一行代码
- 贝叶斯因果网络_因果关系和贝叶斯网络
- 【linux】运维之LAMP
- a豆的使命:每一位年轻人都值得珍重
- 关于北美信号T1和欧洲信号E1的计算
- Python爬取豆瓣读书Top250(正则表达式)
- Number Sequence/数字序列
- API接口名称(item_get - 根据ID取商品详情)[item_search,item_get,item_search_shop等]
- [USACO17OPEN Pt T2]Switch Grass 切换牧草