Android - 如何垂直连接两个相同宽度的位图?

Android - How to join two Bitmaps of same width vertically?

我有一个布局,上半部分是 google 地图,下半部分有一些数据。我需要以编程方式截取整个屏幕的屏幕截图。我正在截取两个半视图的屏幕截图并想垂直加入它们。如何实现?

确实可以垂直(或水平)连接两个位图。可以通过以下方式完成。

假设您有两个视图,view1view2。您首先需要为这两个视图创建 三个 位图,如下所示:

int a = view1.getMeasuredWidth();
int b = view1.getMeasuredHeight();
int c = view2.getMeasuredWidth();
int d = view2.getMeasuredHeight();

Bitmap b1 = Bitmap.createBitmap(a, b, Bitmap.Config.ARGB_8888);
Bitmap b2 = Bitmap.createBitmap(c, d, Bitmap.Config.ARGB_8888);
Bitmap b3 = Bitmap.createBitmap(a, b + d, Bitmap.Config.ARGB_8888);

第三个位图 b3 将根据需要包含垂直合并的位图 b1b2。要合并它们,请执行以下操作:

Canvas c1 = new Canvas(b1);
view1.draw(c1);

Canvas c2 = new Canvas(b2);
view2.draw(c2);

Canvas canvas = new Canvas(b3);

canvas.drawBitmap(b2, new Matrix(), null);
canvas.drawBitmap(b1, 0, view2.getHeight(), null);

现在b3应该有你想要的了。

试试这个。这会起作用。