在android中拉伸位图

时间:2011-02-14 22:44:14

标签: android

我正在编写一段代码,我必须在位图上编写文本和图像。不幸的是,我不知道要在位图中添加的文本项的数量。首先,我通过这个

创建一个位图
Bitmap bitMapBuffer = Bitmap.createBitmap(containerWidth,50, Bitmap.Config.ARGB_8888);

问题是..上面的位图是固定的大小..所以一段时间后我写的任何东西都没有显示在位图上。我怎样才能使它工作,我的意思是一种拉伸的位图类型。我查看了BitmapDrawable,但我无法将drawable传递给像这样的画布

Canvas c1 = new Canvas(bitMapBuffer);

我该如何处理这种情况?

2 个答案:

答案 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吗?