Android繪圖機制與處理技巧

本文是《Android群英傳》的讀書筆記

屏幕的尺寸信息

屏幕參數(shù)

屏幕大?。褐钙聊粚蔷€的長度,通常使用“寸”來度量。

分辨率:分辨率是指手機屏幕的像素點個數(shù)。

PPI:每英寸像素(Pixels Per Inch)又被稱為DPI(Dots Per Inch)。它是由對角線的像素點數(shù)除以屏幕的大小得到的。

系統(tǒng)屏幕密度

系統(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.畫刻度指針

每15°畫一條小豎線

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.繪圖:

效果:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容