package com.bwie.ggl;import android.content.context;
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.graphics.path;
import android.graphics.porterduff;
import android.graphics.porterduffxfermode;
import android.util.attributeset;
import android.view.motionevent;
/*** description: $
todo$
* autour: blueamer
* date: $date$ $time$
* update: $date$
* version: $version$
*/ private static final string tag = "scratchtextview";
private bitmap mbitmap;//
蓋在字上面的
private canvas mcanvas; //
畫線的畫布
private paint mpaint;//
劃線的畫筆
private path mpath;//
線private float
mx, my;
private float
touch_tolerance;
private boolean
isinited = false;//
用於判斷時候覆蓋了
textview
的文字public ggl(context context)
public ggl(context context, attributeset attrs)
public ggl(context context, attributeset attrs, int defstyleattr)
//ondraw
初始化的時候呼叫一次,然
invalidate()
的時候呼叫,
@override
protected void ondraw(canvas canvas)
}/**
* 初始化刮刮卡**
@param
bgcolor
刮刮卡背景色,用於蓋住下面的字
* @param
paintstrokewidth
擦除線寬
* @param
touchtolerance
畫線容差
*/public void initscratchcard(final int bgcolor, final int paintstrokewidth, float touchtolerance)
//該觸膜事件可以定義在呼叫的
activity
中實現@override
public boolean ontouchevent(motionevent event)
switch (event.getaction())
}return true;
}}
總結canvas刮刮樂遊戲
1.刮了圖層後顯示隨機的背景圖,設計滑鼠抬起移動放下事件 2.利用新舊畫素合併的時候被擦掉 ctx.globalcompositeoperation destination out 3.快速移動會出現斷點,那就直接讓兩邊落下的地方連成線 4.利用getimagedata這個方法獲得裡面的data,d...
刮刮樂canvas實現
class scratch config this.movenum 0 this.clearrange clearrange 2 this.canvasid canvasid this.radius radius 25 this.canvas this.canvasid this.ifend fal...
canvas 實現刮刮樂
在解決問題前,我們先來了解一下 canvas 標籤 canvas 是 html5 出現的新標籤,像所有的 dom 物件一樣它有自己本身的屬性 方法和事件,其中就有繪圖的方法,js 能夠呼叫它來進行繪圖。context是乙個封裝了很多繪圖功能的物件,獲取這個物件的方法是 var canvas docu...