Android双页翻书,Android翻书效果-双页模式

本文详细介绍了如何在Android中实现双页翻书效果,包括触摸点计算、页角判断和路径转换等关键步骤,旨在创建逼真的翻页动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

然后根据自己的理解实现了一下双页模式,但是在加贝塞尔曲线的时候,效果不是很理象,这里把自己的思路记录一下。

1342878911_7015.jpg

这里来讲述一下以右下角开始翻页(参见上图)

当我们开始翻动的时候,与X轴有交战P,与Y轴有交战Q

当X轴上的值(Px)小于View的一半的时候,我们需要重新计算这个点所带来的其他值,我们要将P点移动到M

这里已知T点,M点,O点三点坐标   线段MO=MS ,做垂线TB交PO于B,垂线SA交PO于A

求出S点坐标即可

已知T、M两点,可以求出TM的长,TB的长,MB的长,

MO = SM,显然 △TMB∽△SMA ,可以求出SA的长,MA的长,可解得S点坐标

这里S点 就是我们的Touch点坐标,根据这个新的Touch点我们去重新计算与X轴,Y轴的交点坐标等等

下面给出一个模型

public class TurnPage extends View {

/**

* 页角的枚举

*/

public enum Corner {

LeftTop,

LeftBottom,

RightTop,

RightBottom,

None

}

PointF touch = new PointF();// 触摸点

PointF corner = new PointF();// 页角点

PointF middle = new PointF();// 触摸与页角的中点

PointF crossX = new PointF();// 与X轴的焦点

PointF crossY = new PointF();// 与Y轴的焦点

Corner footer = Corner.None;// 表示页脚

Path all = new Path();// 全部掀起的Path

Path part = new Path();// 掀起背面的Path

public TurnPage(Context context, AttributeSet attrs) {

super(context, attrs);

}

public TurnPage(Context context) {

super(context);

}

@Override

protected void onDraw(Canvas canvas) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值