1、基本的繪制圖片方法
//Bitmap:圖片對象,left:偏移左邊的位置,top: 偏移頂部的位置
drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
2、對圖片剪接和限定顯示區域
第一個Rect 代表要繪制的bitmap 區域,第二個 Rect 代表的是要將bitmap 繪制在屏幕的什么地方
drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint);
Rect src: 是對圖片進行裁截,若是空null則顯示整個圖片
RectF dst:是圖片在Canvas畫布中顯示的區域,
大於src則把src的裁截區放大,
小於src則把src的裁截區縮小。
此時我先定義兩個Rect,mSrcRect 取值為整個Bitmap 區域 ,mDestRect 取值為view左上方和bitmap同樣大小;
- private Rect mSrcRect, mDestRect;
- mSrcRect = new Rect(0, 0, mBitWidth, mBitHeight);
- mDestRect = new Rect(0, 0, mBitWidth, mBitHeight);
在onDraw 里繪制該位圖:
- canvas.drawBitmap(mBitmap, mSrcRect, mDestRect, mBitPaint);
畫在左上方似乎缺乏美感,我們把美女畫在view的中心,沒錯,我們只需要改變mDestRect:
- // 計算左邊位置
- int left = mHalfWidth - mBitWidth / 2;
- // 計算上邊位置
- int top = mHalfHeight - mBitHeight / 2;
- mDestRect = new Rect(left, top, left + mBitWidth, top + mBitHeight);
位置計算的時候,只需要注意在android屏幕坐標系里,左上角的位置是(0,0),往右往下為正,此時效果如下: