matrix matrix = new matrix();
matrix.posttranslate(tx, ty);
matrix.postscale(scale, scale);
canvas.drawbitmap(bmp, matrix, null);
(畫布不動,bmp先平移後縮放,均是相對於原始座標)
<===>(等價)
matrix matrix = new matrix();
matrix.posttranslate(tx, ty);
matrix.postscale(scale, scale);
canvas.concat(matrix);
canvas.drawbitmap(bmp, 0, 0, null);
(bmp不動,畫布concat(s*t),均是相對於原始座標)
<===>(等價)
canvas.scale(scale, scale);
canvas.translate(tx, ty);
canvas.drawbitmap(bmp, 0, 0, null);
(bmp不動,畫布先平移,然後相對原始座標而不是canvas的當前座標縮放,類似drawbitmap(bmp, matrix, null);
也可以這麼理解,先縮放,然後相對與canvas的當前座標平移)
注意:canvas,直接操作(t/s/r),可以這樣理解(兩種)
1、後一次操作(後一次呼叫)是在前一次的基礎之後再操作
2、畫布後一次的操作(後一次呼叫)先執行,前一次操作後執行,但是都是相對於原始座標
對於concat,先分解,比如分解成s*t,則是先s,然後在s的基礎上t;或者也可以這樣理解:先t後s,但是是在原始座標基礎上
Drawable和Bitmap的轉換
很多開發者表示,不知道android的drawable和bitmap之間如何相關轉換。下面android123給大家兩種比較簡單高效的方法。一 bitmap轉drawable bitmap bm 根據你的情況獲取 bitmapdrawable bd bitmapdrawable bm android...
Bitmap的載入和Cache
載入bitmap bitmapfactory decodefile decoderesource decodestream decodebytearray 高效載入bitmap的核心思想 採用bitmapfactory.options,使用insamplesize 取樣率 引數來縮放 若為1則取樣後...
BitMap的原理和實現
32位機器上,對於乙個整型數,比如int a 1,int佔4位元組,1位元組 8位 1 byte 8 bit 佔32bit位。如果每個數字用int儲存,那就是20億個int,因而占用的空間約為 2000000000 4 1024 1024 1024 7.45g 如果按位儲存就不一樣了,20億個數就是...