自定義View學(xué)習(xí)(三)表盤

本文學(xué)習(xí)資料 《android群英傳》

先上圖


2.gif

學(xué)習(xí)內(nèi)容
(一)canvas.save()這個方法,保存畫布娇斩;
(二)canvas.restore();合并圖層窗轩,他的作用是在
sava()之后繪制的所有圖片給與save()之前的圖像進(jìn)行合并。
(三)Cavas.rotate();把畫布進(jìn)行旋轉(zhuǎn)敦第,只需要計算好旋轉(zhuǎn)角度争群,就可以實現(xiàn)許多復(fù)雜的繪圖

首先繪制圓盤

   Paint paint1=new Paint();
        paint1.setStyle(Paint.Style.STROKE);
        paint1.setTextSize(25);
        canvas.drawCircle(mwidth/2,mheight/2,mwidth/2,paint1);

表盤的重點在繪制刻度 ,這里用到的rotate()方法回怜,用于旋轉(zhuǎn)畫布,因為第一次的數(shù)字是1换薄,所以先進(jìn)行旋轉(zhuǎn)360/60=6度玉雾,繪制60次,小刻度就出來了轻要。然后進(jìn)行

    for(int i=1;i<13;i++){
            //十二個刻度
            String s=String.valueOf(i);
            canvas.rotate(30,mwidth/2,mheight/2);
           canvas.drawLine(mwidth/2,mheight/2-mwidth/2,mwidth/2,mheight/2-mwidth/2+100,paint1);
            canvas.drawText(s,mwidth/2-paint.measureText(s)/2,mheight/2-mwidth/2+150,paint1);
        }
for(int i=1;i<61;i++){
            //六十個小刻度
            canvas.rotate(6,mwidth/2,mheight/2);
 canvas.drawLine(mwidth/2,mheight/2-mwidth/2,mwidth/2,mheight/2-mwidth/2+50,paint1)复旬;    } ```

最后繪制時針,分針冲泥,秒針(主要在計算每次旋轉(zhuǎn)的角度上)
因為畫布旋轉(zhuǎn)的角度在上次的基礎(chǔ)上進(jìn)行的驹碍,所以通過:
h=小時*30
m=分鐘*6壁涎;
s=秒*6;
計算出來的都是初始時畫布應(yīng)該旋轉(zhuǎn)的角度志秃,但是當(dāng)分針已經(jīng)旋轉(zhuǎn)了m度怔球,那么秒針旋轉(zhuǎn)的角度必須減去m,否則就會出現(xiàn)分針動浮还,時針和秒針都旋轉(zhuǎn)竟坛。

private void drawPointer(Canvas canvas) {
Calendar calendar=Calendar.getInstance();
Date date=calendar.getTime();
int hour= date.getHours();
int minute=date.getMinutes();
int second=date.getSeconds();
int degree=second6;
int hourdegree=hour
30;
int minutedegree=minute*6;
int mwidth=getWidth();
int mheight=getHeight();
// System.out.println("小時"+hour+"分鐘"+minute+"秒"+second);

    Paint paint1=new Paint();
    paint1.setStrokeWidth(35);
    canvas.rotate(hourdegree,mwidth/2,mheight/2);
    canvas.drawLine(mwidth/2,mheight/2,mwidth/2,mheight/2-mwidth/4,paint1);
    canvas.save();
    canvas.restore();

    Paint paint2=new Paint();
    paint2.setStrokeWidth(20);
    paint2.setStyle(Paint.Style.STROKE);
    canvas.rotate(minutedegree-hourdegree,mwidth/2,mheight/2);
    canvas.drawLine(mwidth/2,mheight/2,mwidth/2,mheight/2-mwidth/3,paint2);
    canvas.save();
    canvas.restore();
    Paint paint=new Paint();
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(20);
    paint.setColor(Color.BLUE);
    canvas.rotate(degree-minutedegree,mwidth/2,mheight/2);

    canvas.drawLine(mwidth/2,mheight/2,mwidth/2,mheight/2-mwidth/2,paint);
    canvas.save();
    canvas.restore();
}

最后在onDraw方法中調(diào)用drawPointer,需要通知更新钧舌,這里我設(shè)置更新的時間為300ms

drawPointer(canvas);
postInvalidateDelayed(300);
invalidate();

本人如有錯誤担汤,歡迎留言





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洼冻,隨后出現(xiàn)的幾起案子崭歧,更是在濱河造成了極大的恐慌,老刑警劉巖碘赖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驾荣,死亡現(xiàn)場離奇詭異,居然都是意外死亡普泡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門审编,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撼班,“玉大人,你說我怎么就攤上這事垒酬∨猷遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵勘究,是天一觀的道長矮湘。 經(jīng)常有香客問我,道長口糕,這世上最難降的妖魔是什么缅阳? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮景描,結(jié)果婚禮上十办,老公的妹妹穿的比我還像新娘。我一直安慰自己超棺,他們只是感情好向族,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棠绘,像睡著了一般件相。 火紅的嫁衣襯著肌膚如雪再扭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天夜矗,我揣著相機與錄音霍衫,去河邊找鬼。 笑死侯养,一個胖子當(dāng)著我的面吹牛敦跌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逛揩,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柠傍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辩稽?” 一聲冷哼從身側(cè)響起惧笛,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逞泄,沒想到半個月后患整,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡喷众,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年各谚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片到千。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡昌渤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出憔四,到底是詐尸還是另有隱情膀息,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布了赵,位于F島的核電站潜支,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏柿汛。R本人自食惡果不足惜冗酿,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苛茂。 院中可真熱鬧已烤,春花似錦、人聲如沸妓羊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躁绸。三九已至裕循,卻和暖如春臣嚣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剥哑。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工硅则, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人株婴。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓怎虫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親困介。 傳聞我的和親對象是個殘疾皇子大审,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容