首先讓我們了解下Android平台中的顯示類是View,但是還提供了底層圖形類android.graphics,今天所說的這些均為graphics底層圖形接口。
深入了解Android中View相關博文
http://www.incoding.org/admin/archives/179.html#5.4 onSizeChanged(int, int, int,int)
Bitmap - 稱作位圖,一般位圖的檔案格式字尾為bmp,當然編碼器也有很多如RGB565、RGB888。作為一種逐像素的顯示對象執行效率高,但是缺點也很明顯存儲效率低。我們了解為一種存儲對象比較好。
Drawable - 作為Android平下通用的圖形對象,它可以裝載常用格式的圖像,比如GIF、PNG、JPG,當然也支援BMP,當然還提供一些進階的可視化對象,比如漸變、圖形等。
Canvas - 名為畫布,我們可以看作是一種處理過程,使用各種方法來管理Bitmap、GL或者Path路徑,同時它可以配合Matrix矩陣類給圖像做旋轉、縮放等操作,同時Canvas類還提供了裁剪、選取等操作。
Paint - 我們可以把它看做一個畫圖工具,比如畫筆、畫刷。他管理了每個畫圖工具的字型、顔色、樣式。
如果涉及一些Android遊戲開發、顯示特效可以通過這些底層圖形類來高效實作自己的應用。
1、Paint的設定方法
setAntiAlias: 設定畫筆的鋸齒效果 | setColor: 設定畫筆顔色 |
setARGB: 設定畫筆的a,r,g,b值(a為透明度) | setAlpha: 設定Alpha值(設定透明度) |
setTextSize: 設定字型尺寸 | setStyle: 設定畫筆風格,空心或者實心。 |
setStrokeWidth: 設定空心的邊框寬度 | getColor: 得到畫筆的顔色 |
getAlpha: 得到畫筆的Alpha值 |
drawText(Stringtext, float x, float y(基準線), Paint paint) 我們在畫布中繪制文本的時候,會調用Canvas.drawText(String text, float x, float y, Paint paint)這個方法,其中y的坐标就是上圖中baseline的y坐标,是以,如果我們隻是簡單地把drawText方法中的y設定為控件高度的1/2是不準确的,如果這樣做的話會發現文本整體是位于畫布的上半部分的,因為baseline下面的文本部分是很小的。
正确的做法是通過一些合理的換算使得文本的y坐标(baseline的y坐标)位于控件的下半部分區域。
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 100, 300, paint);