在另一个图像上添加图像

时间:2013-05-06 13:00:22

标签: android android-layout android-imageview

我想开发一个appstore。我想自动在图标上添加标签(如“新”或“热”标签)。喜欢这个图像 enter image description here

怎么可能?我的意思是我可以改变图像的可见性但是android布局不会让图像视图在另一个上面。那怎么可能呢? 感谢。

3 个答案:

答案 0 :(得分:2)

请使用此代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/image"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:background="@android:color/white" />

<ImageView
    android:id="@+id/line"
    android:layout_width="70dp"
    android:layout_height="20dp"
    android:layout_alignEnd="@+id/image"
    android:background="@android:color/holo_purple"
    android:rotation="20" />

<TextView
    android:id="@+id/lable"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/image"
    android:padding="8dp"
    android:rotation="20"
    android:text="New"
    android:textColor="@android:color/white" />

  </RelativeLayout>

答案 1 :(得分:0)

您可以在RelativeLayout或FrameLayout中创建两个图像视图,使它们重叠,然后设置其中一个android:visibility="gone"。在需要时将它们设置为可见。

答案 2 :(得分:0)

为您提供另一种解决方案,我相信它更具可移植性,并以某种方式为您提供不那么混乱的xml布局文件。

public static Bitmap combineBitmaps(Bitmap base, Bitmap label, Context context) {
    if (base == null || label == null) {
        System.err.println("Bitmap is null!");
        return null;
    }

    if(base.getWidth() != label.getWidth() || base.getHeight() != label.getHeight()){
        System.err.println("Width or height mismatch!");
        return null;
    }

    Canvas canvas = new Canvas(base);
    canvas.drawBitmap(label, 0f, 0f, null);

    return base;
}