我有一個派生自ImageView
的課程。在其onDraw
方法重寫中,我需要將視圖的內容複製到位圖中。副本必須包含整個內容而不僅僅是可見部分。如何獲取該內容的大小
要完成此操作,我創建一個位圖並調用super.onDraw
傳遞此位圖的畫布作爲參數。然後我將得到的位圖繪製到onDraw
通過的畫布上。代碼如下。
我的問題是我的位圖應該有多大?目前我使用getWidth()
和getHeight()
作爲位圖的尺寸。但這不起作用,因爲它返回視圖大小,而不是內容大小。我正在尋找一種方法,在根據視圖的scaleType
調整了drawable的大小後獲取內容的大小。
drawable的大小不起作用,因爲drawable可能與內容大小不同。
@Override
public void onDraw(Canvas canvas)
{
if (_bitmap == null)
{
final int w = getWidth();
final int h = getHeight();
_bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
_canvas = new Canvas(_bitmap);
super.onDraw(_canvas);
}
canvas.drawBitmap(_bitmap, 0, 0, null);
}
什麼問題呢?代碼是否工作? – noob 2012-03-29 15:07:33
我編輯了問題並更改了標題 – akonsu 2012-03-29 16:27:21