使用Android來畫乙個鐘錶

2021-09-24 18:52:56 字數 2665 閱讀 2181

今天我們來畫乙個android鐘錶,只不過沒有美化,看起來有點粗糙.....

功能實現就好啦

效果圖:

//-------------------------------------具體思路

我們首先使用canvas.drawoval來畫乙個圓

計算圓的中心,記住圓的中心等於 x:寬/2 y:高/2

如果有移位的加上移位就能計算出圓的中心點

核心的系統方法:canvas.drawoval,canvas.drawline,canvas.rotate,

canvas.rotate使用方式

canvas.rotate(角度,以哪個x座標旋轉,以哪個y座標旋轉)

全部**:

/**

* 乙個自定義鐘錶

*/public class xhview extends view ;

private context mcontext;

private rectf rectf;

private paint mpaint;

private paint mtextpaint;

//縮放距離

private int sc = 20;

//線的長度

private int linew = 40;

//秒錶最長

private int lines = 360;

private paint mpaints;

//分鐘

private int linem = 260;

private paint mpaintm;

//時鐘

private int lineh = 220;

private paint mpainth;

private int drawh;

private int drawm;

private int draws;

public xhview(context context)

public xhview(context context, @nullable attributeset attrs)

public xhview(context context, @nullable attributeset attrs, int defstyleattr)

private void initdata(context mcontext)

@override

protected void ondraw(canvas canvas)

@override

protected void onsizechanged(int w, int h, int oldw, int oldh)

//初始化寬高

private void initw2h()

//開始畫圓/表的刻度

private void startdarwor(canvas canvas) else

if (linew == 40)

canvas.drawline((rectf.right / 2) + (sc / 2), sc, (rectf.right / 2) + (sc / 2), sc + linew, mpaint);

canvas.rotate(360 / 60, (rectf.right / 2) + (sc / 2), (rectf.bottom / 2) + (sc / 2));

canvas.drawoval((rectf.right / 2) + (sc / 2) - 10, (rectf.bottom / 2) + (sc / 2) - 10, (rectf.right / 2) + (sc / 2) + 10, (rectf.bottom / 2) + (sc / 2) + 10, mpaints);}}

//開始畫秒鐘/分鐘/時鐘

private void startdrawsmh(canvas canvas)

//開始處理時間邏輯

//開始處理角度

//秒旋轉角度

private int angle = 6;

//分旋轉角度

private int anglem = 6;

//時旋轉角度

利用canvas畫乙個鐘錶(時分秒聯動)

撲面而來 lang en charset utf 8 畫布 鐘錶title type text css style head clock width 600 height 600 style margin 150px canvas var canvas document.getelementbyid...

Flutter使用ClipPath畫乙個聊天氣泡

先看一下效果圖 先畫乙個三角形再畫乙個圓角矩形,然後把兩個圖案重合起來就實現 了乙個聊天氣泡 const arrowwidth 7.0 箭頭寬度 const arrowheight 10.0 箭頭高度 const minheight 32.0 內容最小高度 const minwidth 50.0 內...

Android 畫乙個 iPhone 樣式的小時鐘

iphone主介面的時鐘幾乎每天都會看到,某天突發奇想,用android是否也可以畫乙個類似的呢?於是決定也嘗試著畫乙個,順便鞏固下自繪控制項的知識,請看 做一件事情先要在腦海中想清楚,仔細觀察了下iphone的這個時鐘 以畫圖的方式來考慮 其實很簡單,大概分析如下 背景是乙個黑色的圓角矩形 表盤是...