如何在android中显示两个资源png图像的组合图像

时间:2013-11-11 09:14:45

标签: android android-image

我的应用程序显示了包含某些设备的gridview列表。每个设备有四种状态。我有不同类型的设备图像和四个状态图像。我想将设备图像与状态图像组合并在gridview中显示。图像存储在应用程序资源中。图像使用ImageView显示。

我怎么能这样做?

image1的

enter image description here

IMAGE2

enter image description here

输出将是

enter image description here

编辑 新图片

enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

您可以像这样使用Frame Layout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/box" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="78dp"
        android:layout_height="61dp"
        android:layout_gravity="top"
        android:layout_marginLeft="120dp"
        android:layout_marginTop="150dp"
        android:src="@drawable/Remove" />

</FrameLayout>

此代码的输出是: enter image description here

答案 1 :(得分:2)

试试这个对我很有用

public Bitmap combineImages(int boxDrawableId , int closeDrawableId) {

        Bitmap box = BitmapFactory.decodeResource(getResources(),boxDrawableId);
        Bitmap close = BitmapFactory.decodeResource(getResources(), closeDrawableId);

        Bitmap bitmapCreate = Bitmap.createBitmap(box.getWidth(), box.getHeight(), Bitmap.Config.ARGB_8888);

        Canvas comboImage = new Canvas(bitmapCreate);

        comboImage.drawBitmap(box, 0, 0, null);
        comboImage.drawBitmap(close, box.getWidth()-close.getWidth(), box.getHeight()-close.getHeight(), null);
        if (box != null) {
            try {
                box.recycle();
                close.recycle();
                box = null;
                close = null;
            } catch (Throwable e) {
            }
        }
        return bitmapCreate;
    }

如何致电?

imgView.setImageBitmap(combineImages(R.drawable.box,R.drawable.close));

<强>输出

enter image description here