在 ImageView 中居中对齐图像 - Android
Center align image in ImageView - Android
我在将 ImageView 中的图像居中时遇到问题。
这些是我的 RecyclerView
行
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerViewRowParent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:foreground="?selectableItemBackground"
android:minHeight="64dip">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="?listPreferredItemHeight"
android:orientation="horizontal"
android:weightSum="100">
<ImageView
android:id="@+id/ivDeliveryState"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|left"
android:layout_weight="15"
android:scaleType="center"
android:src="@drawable/ic_home_blue_grey_500_24dp" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="60"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scrollHorizontally="false"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvSubtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scrollHorizontally="false"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="35"
android:orientation="horizontal"
android:weightSum="100">
<TextView
android:id="@+id/tvNotification"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="25"
android:gravity="center"
android:lines="1"
android:maxLength="3"
android:textColor="@color/blue_gray_500"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/handle"
android:layout_width="0dip"
android:layout_weight="75"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_dehaze_blue_grey_500_24dp" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
我想将汉堡包图标(id="@+id/handle")在 ImageView 的右侧水平和垂直居中,但直到现在我还没有成功。 属性 我误用了什么或者我做错了什么?
谢谢!
设置父LinearLayout重力为中心
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="35"
android:orientation="horizontal"
android:gravity="center"
android:weightSum="100">
我假设您想将图像居中放置在布局的最右侧。如果是这样,我认为您只是错误地计算了百分比。包含 @+id/tvNotification 和 @+id/handle 的 LinearLayout 应该是 layout_weight="25" 而不是像代码中那样的 35:
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:orientation="horizontal"
android:weightSum="100">
<TextView
android:id="@+id/tvNotification"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="25"
android:gravity="center"
android:lines="1"
android:maxLength="3"
android:textColor="@color/blue_gray_500"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/handle"
android:layout_width="0dip"
android:layout_weight="75"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_dehaze_blue_grey_500_24dp" />
</LinearLayout>
我在将 ImageView 中的图像居中时遇到问题。
这些是我的 RecyclerView
行
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerViewRowParent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:foreground="?selectableItemBackground"
android:minHeight="64dip">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="?listPreferredItemHeight"
android:orientation="horizontal"
android:weightSum="100">
<ImageView
android:id="@+id/ivDeliveryState"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|left"
android:layout_weight="15"
android:scaleType="center"
android:src="@drawable/ic_home_blue_grey_500_24dp" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="60"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scrollHorizontally="false"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvSubtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scrollHorizontally="false"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="35"
android:orientation="horizontal"
android:weightSum="100">
<TextView
android:id="@+id/tvNotification"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="25"
android:gravity="center"
android:lines="1"
android:maxLength="3"
android:textColor="@color/blue_gray_500"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/handle"
android:layout_width="0dip"
android:layout_weight="75"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_dehaze_blue_grey_500_24dp" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
我想将汉堡包图标(id="@+id/handle")在 ImageView 的右侧水平和垂直居中,但直到现在我还没有成功。 属性 我误用了什么或者我做错了什么? 谢谢!
设置父LinearLayout重力为中心
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="35"
android:orientation="horizontal"
android:gravity="center"
android:weightSum="100">
我假设您想将图像居中放置在布局的最右侧。如果是这样,我认为您只是错误地计算了百分比。包含 @+id/tvNotification 和 @+id/handle 的 LinearLayout 应该是 layout_weight="25" 而不是像代码中那样的 35:
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:orientation="horizontal"
android:weightSum="100">
<TextView
android:id="@+id/tvNotification"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="25"
android:gravity="center"
android:lines="1"
android:maxLength="3"
android:textColor="@color/blue_gray_500"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/handle"
android:layout_width="0dip"
android:layout_weight="75"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_dehaze_blue_grey_500_24dp" />
</LinearLayout>