在GridView中,我正在显示书籍网格。每本书都有状态 - 新的,最喜欢的,完成的。这是我想要实现的例子:
我的布局有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上。在该示例中,解决方案是针对一个项目 - 线性布局。就我而言,我将状态图标放在网格视图项的角上。结果,大多数状态图标不可见:
如何在列表项目布局中的另一个视图的右上角创建一个视图中心?
答案 0 :(得分:4)
为了提高效率,您可以使用性能优于FrameLayout
的{{1}}执行此操作。
说,这样做的诀窍是在书本图像中放置一个边距来模拟徽章退出图像。例如像这样
RelativeLayout
调整布局边距以适合您的设计。
**其他一些小建议是使用x8尺寸为“更多材质”(如果你需要中等尺寸,则使用x4)。而不是95dp使用96,而不是146使用144或152 ...