转盘动画"/>
Android实现抽奖转盘动画
效果图
使用自定义SurfaceView
SurfaceView extends View
其实View是在UI线程中进行绘制
SurfaceView 是在一个子线程中队自己进行绘制,优势:避免造成UI线程阻塞。
其实,我们SurfaceView中包含一个专门用于绘制的Surfaace,Surface中包含一个Canvas
getHolder–>SurfaceHolder
holder–>Canvas +管理SurfaceView的生命周期
surfaceCreated
surfaceChanged
surfaceDestoryed
public class LuckyPan extends SurfaceView implements Callback, Runnable {private SurfaceHolder mHolder;private Canvas mCanvas;/*** 用于绘制的线程*/private Thread t;/*** 线程的绘制开光*/private boolean isRuning;/*** 盘块的奖项*/private String[] mStrs = new String[] { "单反相机", "Ipad", "恭喜发财", "Iphone","服装一套", "恭喜发财" };/**** 奖项的图片*/private int[] mImgs = new int[] { R.drawable.danfan, R.drawable.ipad,R.drawable.xialian, R.drawable.iphone, R.drawable.meizi,R.drawable.xialian };/*** 与图片相对的Bitmap*/private Bitmap[] mImgsBitmap;/**** 盘块的颜色*/private int[] mColors = new int[] { 0xffffc300, 0xfff17e01, 0xffffc300,0xfff17e01, 0xffffc300, 0xfff17e01 };private int mItemCount = 6;/*** 整个盘块的范围*/private RectF mRange = new RectF();/*** 整个盘块的直径*/private int mRadius;/*** 绘制盘块的画笔*/private Paint mArcPaint;/**** 绘制文本的画笔*/
更多推荐
Android实现抽奖转盘动画
发布评论