实现原理:
使用SurfaceView一直重绘实现该动画效果
先看效果图:
代码实现:
1.幻灯片基类:
package com.open.turnpage;
import android.graphics.Bitmap;
import android.view.SurfaceHolder;
/**
* 幻灯片效果的接口
* @author admin
*
*/
public interface ITurnPage {
public abstract void onCreate();
public abstract void onTurnPageDraw(SurfaceHolder holder,Bitmap[] bitmap,int maxWidth,int maxHeight);
public abstract void onDestory();
}
a.从左到右实现:
package com.open.turnpage;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Rect;
import android.view.SurfaceHolder;
/**
*
* @author admin
*
*/
public class ShutterLeft2Right implements ITurnPage {
private int duration=350;//动画持续时间
private final int leafNum=5;
private PaintFlagsDrawFilter pdf=new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
public ShutterLeft2Right() {
// TODO Auto-generated constructor stub
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
}
@Override
public void onTurnPageDraw(SurfaceHolder holder, Bitmap[] bitmap,
int maxWidth, int maxHeight) {
int dx=(maxWidth-bitmap[0].getWidth())/2;
int dy=(maxHeight-bitmap[0].getHeight())/2;
int perWidth=maxWidth/