關於自定義view時代使用樣式,風格,大小的資源定義不再介紹,這裡注重介紹如何在ondraw(canvas canvas)方法中去繪製所需要的view。
主要體現在 paint 、canvas物件的使用:
下面主要呈現乙個類似手錶的view的繪製:
自定義view如下:
package view;
import com.example.testtone.mainactivity;
import android.content.context;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.graphics.paint.style;
import android.graphics.path;
import android.graphics.rectf;
import android.text.textutils;
import android.util.log;
import android.view.view;
import android.widget.toast;
public class testview extends view
public void updatetime(int second)
@override
protected void ondraw(canvas canvas) else
canvas.rotate(6,0f,0f); //旋轉畫紙
} //繪製指標圓心
tmppaint.setcolor(color.gray);
tmppaint.setstrokewidth(4);
canvas.drawcircle(0, 0, 15, tmppaint);
tmppaint.setstyle(style.fill);
tmppaint.setcolor(color.yellow);
canvas.drawcircle(0, 0, 10, tmppaint);
//繪製指標,y: 上負,下正;; x: 左 負,右正
float r =30;
float r = 200;
double xend,xstart,yend,ystart;
// 根據三角函式計算
double angle = second*math.pi/30;
log.d("jxh"," ondraw mstrokewidth="+mstrokewidth);
toast.maketext(this.getcontext(), " angle= "+angle, toast.length_short).show();
xstart = -r*math.sin(angle);
ystart = r*math.cos(angle);
xend = r*math.sin(angle);
yend = -r*math.cos(angle);
canvas.drawline((float)xstart,(float) ystart,(float) xend,(float)yend,p );}}
主activity的:
Android自定義View基礎繪製
1 onmeasure測量 計算寬高 2 viewgroup進行onlayout 基於位置和寬高布置到螢幕 3 ondraw檢視顯示自身內容 渲染 canvas 畫布,可以提供檢視顯示的載體,可以繪製文字 幾何圖形 影象 填充顏色 paint 畫筆,針對畫布需要繪製的內容的修飾 建立畫筆 paint...
自定義View之繪製文字
在初始化方法裡建立畫筆,設定畫筆顏色,不設定預設黑色 mtextpaint new paint mtextpaint.setcolor color.white 在ondraw方法裡繪製文字 canvas.drawtext text,float x,float y offset,mtextpaint ...
自定義時鐘View,表盤的繪製
實現的效果圖如下 main中布局檔案 values資料夾下新建乙個xml檔案,定義引數 1.自定義乙個類 myclock extends view,並設定統一的入口 public myclock context context public myclock context context,attri...