SurfaceView有关

慕课网的例子  抽奖转盘,github仓库有代码

public class SurfaceView_example extends SurfaceView implements Callback, Runnable {

   private SurfaceHolder mHolder;
   /**
    * SurfaceHolder绑定的Canvas
    */
   private Canvas mCanvas;
   /**
    * 用于绘制的线程
    */
   private Thread t;
   /**
    * 线程的控制开关
    */
   private boolean isRunning;
   
   public SurfaceView_example(Context context) {
      super(context,null);
      // TODO Auto-generated constructor stub
   }

   public SurfaceView_example(Context context, AttributeSet attrs) {
      super(context, attrs);
      
      mHolder = getHolder();
      mHolder.addCallback(this);
      
      //设置可获取焦点
      setFocusable(true);
      setFocusableInTouchMode(true);
      
      //设置常量
      this.setKeepScreenOn(true);
      
   }

   @Override
   public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
      // TODO Auto-generated method stub
      
   }

   @Override
   public void surfaceCreated(SurfaceHolder holder) {
      
      isRunning = true;
      t = new Thread(this);
      t.start();
   }

   @Override
   public void surfaceDestroyed(SurfaceHolder arg0) {
      
      isRunning = false;
      
   }

   @Override
   public void run() {
      
      while(isRunning){
         
         darw();
      }
      
   }

   private void darw() {
      
      try {
         mCanvas = mHolder.lockCanvas();
         if(mCanvas != null){
            //drawing
         }
      } catch (Exception e) {
      }
      finally{
         
         if(mCanvas != null){
            mHolder.unlockCanvasAndPost(mCanvas);
         }
      }
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值