0

我想开发一个应用商店。我想在图标顶部自动添加一个标签(如“新”或“热”标签)。喜欢这张图片 在此处输入图像描述

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

4

3 回答 3

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>
于 2013-05-06T13:08:26.757 回答
0

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

于 2013-05-06T13:02:30.183 回答
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;
}
于 2013-05-06T13:40:49.940 回答