Android - 如何使一个视图集中在另一个视图的列表项目布局内的右上角

时间:2015-08-23 12:45:30

标签: android android-layout

在GridView中,我正在显示书籍网格。每本书都有状态 - 新的,最喜欢的,完成的。这是我想要实现的例子:

enter image description here

我的布局有2个ImageViews:1个用于书籍封面,1个用于书籍状态图标(新的,已完成的,最喜欢的)

        <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/ivCover"
            android:layout_width="95dp"
            android:layout_height="146dp"
            />
        <ImageView
            android:layout_width="26dp"
            android:layout_height="26dp"
            android:src="@drawable/icon_new"
            android:layout_alignParentTop="@id/ivCover"
            android:layout_alignRight="@id/ivCover"
            android:background="@drawable/shape_round_book_status"
            android:layout_marginRight="-13dp"
            android:layout_marginTop="-13dp"/>
    </RelativeLayout>

我找到了如何将一个视图的中心放在另一个视图的右上角here上。在该示例中,解决方案是针对一个项目 - 线性布局。就我而言,我将状态图标放在网格视图项的角上。结果,大多数状态图标不可见:

enter image description here

如何在列表项目布局中的另一个视图的右上角创建一个视图中心?

1 个答案:

答案 0 :(得分:4)

为了提高效率,您可以使用性能优于FrameLayout的{​​{1}}执行此操作。

说,这样做的诀窍是在书本图像中放置一个边距来模拟徽章退出图像。例如像这样

RelativeLayout

调整布局边距以适合您的设计。

**其他一些小建议是使用x8尺寸为“更多材质”(如果你需要中等尺寸,则使用x4)。而不是95dp使用96,而不是146使用144或152 ...