首先我們要明白,為什麼要自定義view?主要是android系統內建的view無法實現我們的需求,我們需要針對我們的業務需求定製我們想要的view。自定義view我們大部分時候只需重寫兩個函式:onmeasure()、ondraw()。onmeasure負責對當前view的尺寸進行測量,ondraw負責把當前這個view繪製出來。
下面舉個例子自定義view實現刮刮樂的效果。具體**如下:
首先先建立乙個類然後繼承view。
**:import android.content.context;
import android.graphics.bitmap;
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;
import android.view.view;
public class guajiang extends view
public guajiang(context context, attributeset attrs)
public guajiang(context context, attributeset attrs, int defstyleattr)
private void init()
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
@override
protected void ondraw(canvas canvas)
/*** 繪製線條
*/private void drawpath()
@override
public boolean ontouchevent(motionevent event)
mlastx = x;
mlasty = y;
break;
}invalidate();
return true;}}
將這個類的全名稱複製到你的布局檔案中即可。
首先在布局加一
自定義 view,實現刮獎
一 建立自定義view類 public class myview extends view public myview context context,attributeset attrs public myview context context,attributeset attrs,int de...
自定義view 實現計步器的效果
首先看下效果圖 在做這個專案之前先了解下文字獲取 我之前也寫過一篇文章是自定義view 自定義圓環進度條 今天詳細講解一下baseline 基線 參考文章 文淑大神的自定義view之繪圖篇 四 獲取例項 paint.fontmetrics fontmetrics mpaint.getfontmetr...
自定義view刮刮卡效果
要實現這種效果,必須要知道這樣乙個類 porterduffxfermode,設定兩張重疊的效果 他有以下過濾模式 src imageview 的src dst imageview的background android.graphics.porterduff.mode.src 只繪製源影象 andro...