Android - 如何垂直连接两个相同宽度的位图?
Android - How to join two Bitmaps of same width vertically?
我有一个布局,上半部分是 google 地图,下半部分有一些数据。我需要以编程方式截取整个屏幕的屏幕截图。我正在截取两个半视图的屏幕截图并想垂直加入它们。如何实现?
确实可以垂直(或水平)连接两个位图。可以通过以下方式完成。
假设您有两个视图,view1
和 view2
。您首先需要为这两个视图创建 三个 位图,如下所示:
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
将根据需要包含垂直合并的位图 b1
和 b2
。要合并它们,请执行以下操作:
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
应该有你想要的了。
试试这个。这会起作用。
我有一个布局,上半部分是 google 地图,下半部分有一些数据。我需要以编程方式截取整个屏幕的屏幕截图。我正在截取两个半视图的屏幕截图并想垂直加入它们。如何实现?
确实可以垂直(或水平)连接两个位图。可以通过以下方式完成。
假设您有两个视图,view1
和 view2
。您首先需要为这两个视图创建 三个 位图,如下所示:
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
将根据需要包含垂直合并的位图 b1
和 b2
。要合并它们,请执行以下操作:
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
应该有你想要的了。
试试这个。这会起作用。