10

我有多个可绘制对象并希望将其组合为一个可绘制对象(例如,4 个正方形来创建一个大正方形,如 Windows 徽标 :))。我怎样才能做到这一点?

4

2 回答 2

16

您可以使用 aTableLayout或 some LinearLayouts 来做到这一点。但是,如果您想要创建单个图像以在 a 中使用ImageView,则必须Bitmap手动创建;这并不难:

Bitmap square1 = BitmapFactory.decodeResource(getResources(), R.drawable.square1);
Bitmap square2 = BitmapFactory.decodeResource(getResources(), R.drawable.square2);
Bitmap square3 = BitmapFactory.decodeResource(getResources(), R.drawable.square3);
Bitmap square4 = BitmapFactory.decodeResource(getResources(), R.drawable.square4);

Bitmap big = Bitmap.createBitmap(square1.getWidth() * 2, square1.getHeight() * 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(big);
canvas.drawBitmap(square1, 0, 0, null);
canvas.drawBitmap(square2, square1.getWidth(), 0, null);
canvas.drawBitmap(square3, 0, square1.getHeight(), null);
canvas.drawBitmap(square4, square1.getWidth(), square1.getHeight(), null);

我什至没有编译上面的代码;我只是向你展示如何做到这一点。我还假设您有所有尺寸相同的方形可绘制对象。请注意,所调用的位图big可以在您想要的任何地方使用(例如ImageView.setImageBitmap())。

于 2012-07-04T23:47:02.947 回答
8

您可以使用LayerDrawable来做到这一点。

于 2016-03-30T23:57:23.493 回答