兩種方法都是實現畫一個慢慢變大的圓, 自訂的view要sleep一下才能看到效果 . surfaceView不用. 可能與其兩級緩衝有關.
_____________________________________最美分割線_________________________________________
使用它主要就是
SurfaceHolder sh = this.getHolder();--->1.得到SurfaceHolder
Canvas canvas = sh.lockCanvas();---->2. 鎖定畫布
Paint paint = new Paint();
paint.setColor(Color.RED); ----->3. 在畫布上幹事
canvas.drawCircle(100, 100, radius, paint);
sh.unlockCanvasAndPost(canvas); ----->4. 解除鎖定
下面圖片為全部代碼.
_____________________________________最美分割線__________________________________________
view主要幹活的是onDraw()方法.這個不用手動調(不像surfaceview還得還一個surfaceHolder.addCallback()方法)
其實surfaceview裡的surfaceHolder.addCallback()方法是不斷的調用Draw()方法. 這個方法文檔的解釋:Manually render this view (and all of its children) to the given Canvas. The view must have already done a full layout before this function is called. When implementing a view, implementonDraw(android.graphics.Canvas)
instead of overriding this method. If you do need to override this method, call the superclass version.