我正在编写一段代码,我必须在位图上编写文本和图像。不幸的是,我不知道要在位图中添加的文本项的数量。首先,我通过这个
创建一个位图Bitmap bitMapBuffer = Bitmap.createBitmap(containerWidth,50, Bitmap.Config.ARGB_8888);
问题是..上面的位图是固定的大小..所以一段时间后我写的任何东西都没有显示在位图上。我怎样才能使它工作,我的意思是一种拉伸的位图类型。我查看了BitmapDrawable
,但我无法将drawable传递给像这样的画布
Canvas c1 = new Canvas(bitMapBuffer);
我该如何处理这种情况?
答案 0 :(得分:0)
您需要跟踪所需位图的大小。当您需要添加另一段文本时,这将超过当前位图的限制,您需要创建一个新位图。这是伪代码的一种方法:
Bitmap buffer = Bitmap.createBitmap(containerWidth, 50, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(buffer);
// ...
while (more_text_to_add()) {
if (bitmap_too_small()) {
Bitmap old = buffer;
buffer = Bitmmap.createBitmap(buffer.getWidth(),
buffer.getHeight + delta, Bitmap.Config.ARGB_8888);
c = new Canvas(buffer);
c.drawBitmap(old, 0, 0, null);
}
draw_more_text();
}
在此代码中,delta
是您想要为位图添加的高度。
答案 1 :(得分:0)
你考虑过NinePatch吗?