结合多个drawables

时间:2012-07-04 23:31:53

标签: android drawable

我有多个drawable并希望将它组合成一个drawable(例如,4个方块来创建一个大的正方形,如Windows徽标:))。我怎么能这样做?

2 个答案:

答案 0 :(得分:14)

您可以使用TableLayout或某些LinearLayout来执行此操作。但是,如果您想要在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())。

答案 1 :(得分:6)

您可以使用LayerDrawable来完成此操作。