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;

    /***
     * 绘制文本的画笔
     */
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值