ImageView 无法定位在 Layout 中的正确位置
ImageView can't be positioned in the right place in the Layout
我想做一个购物车图片,在右上角有一个小指示器来显示有多少产品selected/ordered。
问题是,我不能把它放在右上角,只能放在左边(默认)或中间。
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="top|right"
android:src="#0066ff" />
</RelativeLayout>
您可以将这段代码添加到您的 ImageView 标签中。
android:layout_marginLeft="90dp"
它会让 ImageView 向右移动 marginLeft 给出一个空白取决于你想要的大小。您可以根据需要更改大小。
通过使用 FrameLayout,您可以为其添加一些填充和边距
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="top|right"
android:src="#0066ff" />
</FrameLayout>
更新
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<TextView
android:id="@+id/indicatorIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:layout_marginLeft="25dp"
android:background="@drawable/circle_shape"
android:text="5"
android:textSize="24sp" />
</FrameLayout>
您可以根据自己的意愿创建形状
res/drawable/circle_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#0066ff"></solid>
</shape>
除此之外,我建议您使用其他第三个库,它非常适合显示此类徽章或突出显示的视图
父级是 RelativeLayout
所以尝试使用属性 :
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
在你的 "@+id/indicatorIcon"
.
希望对您有所帮助。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:src="#0066ff" />
</RelativeLayout>
我想做一个购物车图片,在右上角有一个小指示器来显示有多少产品selected/ordered。 问题是,我不能把它放在右上角,只能放在左边(默认)或中间。
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="top|right"
android:src="#0066ff" />
</RelativeLayout>
您可以将这段代码添加到您的 ImageView 标签中。
android:layout_marginLeft="90dp"
它会让 ImageView 向右移动 marginLeft 给出一个空白取决于你想要的大小。您可以根据需要更改大小。
通过使用 FrameLayout,您可以为其添加一些填充和边距
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="top|right"
android:src="#0066ff" />
</FrameLayout>
更新
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<TextView
android:id="@+id/indicatorIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:layout_marginLeft="25dp"
android:background="@drawable/circle_shape"
android:text="5"
android:textSize="24sp" />
</FrameLayout>
您可以根据自己的意愿创建形状
res/drawable/circle_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#0066ff"></solid>
</shape>
除此之外,我建议您使用其他第三个库,它非常适合显示此类徽章或突出显示的视图
父级是 RelativeLayout
所以尝试使用属性 :
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
在你的 "@+id/indicatorIcon"
.
希望对您有所帮助。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/shoppingCartIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_cart" />
<ImageView
android:id="@+id/indicatorIcon"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:src="#0066ff" />
</RelativeLayout>