Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的拉伸位图_Android - Fatal编程技术网

android中的拉伸位图

android中的拉伸位图,android,Android,我正在编写一段代码,我必须在位图上编写文本和图像。不幸的是,我不知道要添加到位图中的文本项的数量。首先,我创建了一个位图 Bitmap bitMapBuffer = Bitmap.createBitmap(containerWidth,50, Bitmap.Config.ARGB_8888); 问题是。。上面的位图大小是固定的。。所以过了一段时间,我写的东西不会显示在位图上。我怎样才能让它工作,我是说一种拉伸位图类型。我在BitmapDrawable中查看过,但我无法将drawable传递给这

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

Bitmap bitMapBuffer = Bitmap.createBitmap(containerWidth,50, Bitmap.Config.ARGB_8888);
问题是。。上面的位图大小是固定的。。所以过了一段时间,我写的东西不会显示在位图上。我怎样才能让它工作,我是说一种拉伸位图类型。我在BitmapDrawable中查看过,但我无法将drawable传递给这样的画布

Canvas c1 = new Canvas(bitMapBuffer);

如何处理这种情况?

您需要跟踪所需位图的大小。当您需要添加另一段文本,而这将超出当前位图的限制时,您需要创建一个新的位图。以下是实现此目的的一种方法的伪代码:

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是要为位图添加的高度。

需要跟踪位图的大小。当您需要添加另一段文本,而这将超出当前位图的限制时,您需要创建一个新的位图。以下是实现此目的的一种方法的伪代码:

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();
}

在这段代码中,增量是要为位图添加的高度。

您考虑过NinePatch吗?

您考虑过NinePatch吗?

您可以将位图传递到画布。这两行代码没有任何问题。你的问题在别处。是的。上面的代码行可以工作。。。问题是位图的初始大小。由于文本的数量未知,因此使用固定的初始大小是行不通的。下面给出的答案确实解决了这个问题。但我只是想知道是否有更好的方法,你可以把位图传给画布。这两行代码没有任何问题。你的问题在别处。是的。上面的代码行可以工作。。。问题是位图的初始大小。由于文本的数量未知,因此使用固定的初始大小是行不通的。下面给出的答案确实解决了这个问题。但我只是想知道是否有更好的方法。我同意这个解决方案会起作用,但我并不关心与时不时创建新位图相关的性能问题。我在想。。。有没有一种方法可以获得可拉伸位图。。一种可以自行拉伸的位图。在绘制位图时,您当然可以通过更改在绘制操作中应用于位图的矩阵来拉伸位图,但这不会为位图腾出更多的空间。嗯。。。我实施了你的解决方案。如果它开始杀死我的应用。。我试着做点别的。谢谢您的时间。我确实同意这个解决方案会起作用,但我并不关心与时不时创建新位图相关的性能问题。我在想。。。有没有一种方法可以获得可拉伸位图。。一种可以自行拉伸的位图。在绘制位图时,您当然可以通过更改在绘制操作中应用于位图的矩阵来拉伸位图,但这不会为位图腾出更多的空间。嗯。。。我实施了你的解决方案。如果它开始杀死我的应用。。我试着做点别的。谢谢你抽出时间。