ImageView - 左右不需要的填充
ImageView - Unwanted padding at left and right
我在 ScrollView 中有一个 ImageView。 ImageView的宽高分别为match_parent和wrap_content。但是,ImageView 的左右两侧有轻微的填充。图片从服务器下载并显示在ImageView中。
这是我的 XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_without_spinner" />
<ScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:id="@+id/ll_select_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll_feature"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/text_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:visibility="gone" >
<TextView
android:id="@+id/item_features_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/empty"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/item_features_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/empty"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- ImageView with the problem -->
<ImageView
android:id="@+id/item_features_imageview_icon"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="true"
android:padding="0dp"
android:contentDescription="@string/item_features_icon"
android:cropToPadding="false"
android:scaleType="fitCenter" />
</LinearLayout>
</LinearLayout>
....
....
</LinearLayout>
</ScrollView>
</LinearLayout>
请查看以下屏幕截图:
如何使 ImageView 与 scrollView 的总宽度匹配并保持纵横比?
不应该 "fitCenter" 按照文档自动匹配边缘吗?
ImageView.ScaleType。 FIT_CENTER
Compute a scale that will maintain the original src aspect ratio, but
will also ensure that src fits entirely inside dst. At least one axis
(X or Y) will fit exactly. The result is centered inside dst.
使用这个
android:scaleType="fitX"
它会在水平方向扩展您的图像,移除多余的填充
您也可以使用
android:scaleType="fitXY"
它将在垂直和水平方向上展开
android:scaleType="fitX"
它会在水平方向上扩展你的图像,移除额外的填充 android:scaleType="fitXY"
它会在垂直方向和水平方向上扩展
当你有大图像时使用 android:adjustViewBounds="true"
它调整边界以保持其可绘制对象的纵横比。
Ex.
<ImageView
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/background_design" />
我在 ScrollView 中有一个 ImageView。 ImageView的宽高分别为match_parent和wrap_content。但是,ImageView 的左右两侧有轻微的填充。图片从服务器下载并显示在ImageView中。
这是我的 XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.xx.xxx"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_without_spinner" />
<ScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none" >
<LinearLayout
android:id="@+id/ll_select_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll_feature"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/text_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:visibility="gone" >
<TextView
android:id="@+id/item_features_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/empty"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/item_features_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/empty"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- ImageView with the problem -->
<ImageView
android:id="@+id/item_features_imageview_icon"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="true"
android:padding="0dp"
android:contentDescription="@string/item_features_icon"
android:cropToPadding="false"
android:scaleType="fitCenter" />
</LinearLayout>
</LinearLayout>
....
....
</LinearLayout>
</ScrollView>
</LinearLayout>
请查看以下屏幕截图:
如何使 ImageView 与 scrollView 的总宽度匹配并保持纵横比?
不应该 "fitCenter" 按照文档自动匹配边缘吗?
ImageView.ScaleType。 FIT_CENTER
Compute a scale that will maintain the original src aspect ratio, but will also ensure that src fits entirely inside dst. At least one axis (X or Y) will fit exactly. The result is centered inside dst.
使用这个
android:scaleType="fitX"
它会在水平方向扩展您的图像,移除多余的填充
您也可以使用
android:scaleType="fitXY"
它将在垂直和水平方向上展开
android:scaleType="fitX"
它会在水平方向上扩展你的图像,移除额外的填充 android:scaleType="fitXY"
它会在垂直方向和水平方向上扩展
当你有大图像时使用 android:adjustViewBounds="true"
它调整边界以保持其可绘制对象的纵横比。
Ex.
<ImageView
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
app:srcCompat="@drawable/background_design" />