我有一个派生自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);
}