本文是《Android群英傳》的讀書筆記
屏幕的尺寸信息
屏幕參數(shù)
屏幕大?。褐钙聊粚蔷€的長度,通常使用“寸”來度量。
分辨率:分辨率是指手機屏幕的像素點個數(shù)。
PPI:每英寸像素(Pixels Per Inch)又被稱為DPI(Dots Per Inch)。它是由對角線的像素點數(shù)除以屏幕的大小得到的。
系統(tǒng)屏幕密度

獨立像素密度dp
Android系統(tǒng)使用mdpi即密度值為160的屏幕作為標(biāo)準(zhǔn),在這個屏幕上1px=1dp。
換算:ldpi:mdpi:hdpi:xhdpi:xxhpi=3:4:6:8:12
單位轉(zhuǎn)換
過幾天再寫
2D繪圖基礎(chǔ)
drawPoint(點)、drawLine(線)、drawRect(矩形)、drawVertices(多邊形)、drawArc(弧)、drawCircle(圓)
setAnitAlias();//設(shè)置畫筆的抗鋸齒效果
setColor();//設(shè)置畫筆的顏色
setARGB();//設(shè)置畫筆的A、R、G、B值
setAlpha();//設(shè)置畫筆的Alpha();//設(shè)置畫筆的Alpha值
setTextSize();//設(shè)置字體的尺寸
setStyle();//設(shè)置畫筆的風(fēng)格(空心或?qū)嵭模?/p>
setStrokeWidth();//設(shè)置空心邊框的寬度
Android XML繪圖
Bitmap

Shape


Layer


Selector


Android繪圖技巧
canvas
Canvas.save()
Canvas.restore()
Canvas.translate()
Canvas.rotate()
新建類,繼承View,重寫onDraw()方法
1.畫圓

2.畫刻度指針

3.畫表針


SurfaceView
如果你的自定義View需要頻繁刷新,或者刷新時數(shù)據(jù)處理量比較大,那么你就可以考慮使用SurfaceView來取代View了。
模板代碼:
1.新建一個繼承自SurfaceView的類,重寫三個構(gòu)造方法。
2.創(chuàng)建

3.初始化

4.在SurfaceView的三個回調(diào)方法中:

5.在SurfaceCreated()的子線程中:

6.子線程中的draw()方法:

SurfaceView實例
正弦曲線:
1.寫出模板。
2.聲明繪制正弦曲線要用到的東西:

3.在init()方法中初始化他們:

4.在子線程中計算正弦曲線坐標(biāo):

5.繪圖:

效果:

數(shù)位板
1.寫出模板。
2.聲明繪制正弦曲線要用到的東西:

3.在init()方法中初始化他們:

4.重寫onTouchEvent()方法,得到觸摸路徑:

5.在子線程中可以進行一些優(yōu)化:
但有時候繪制也不用這么頻繁。因此我們可以在子線程中,進行sleep操作,盡可能地節(jié)省系統(tǒng)資源。

6.繪圖:

效果:
