最近利用空余时间实现了一下翻书的动画:
主要利用了3个方面的东西:
1:Canvas的Clip方法
2:设置Path路径,这其中包括了Bezier函数的理解
3:绘图原理参考:http://blog.csdn.net/hmg25/article/details/6306479 此大神
废话不多说,直接源码吧
package com.fpd.myapplication;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Region;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
/**
* Created by KXDoffice on 2015/12/30.
*/
public class ClippingTest extends View {
private Paint mPaint;
private Path mPath;
private String testString = "拥有财富、名声、权力,这世界上的一切的男人 “海贼王”哥尔·D·罗杰,在被行刑受死之前说了一句话,让全世界的人都涌向了大海。“想要我的宝藏吗?如果想要的话,那就到海上去找吧,我全部都放在那里。”,世界开始迎接“大海贼时代”的来临。";
private String secondString = "时值“大海贼时代”,为了寻找传说中海贼王罗杰所留下的大秘宝“ONE PIECE”,无数海贼扬起旗帜,互相争斗。一个叫路飞的少年为了与因救他而断臂的香克斯的约定而出海,在旅途中不断寻找志同道合的伙伴,开始了以成为海贼王为目标的伟大冒险旅程.";
private int width;
private int height;
private TextPaint textPaint = new TextPaint();
priva