如果我有相同大小的211px x 165px的图像集,如何使用网格视图显示它们,同时保持高度和宽度之间的原始比率。需要在每行显示两个项目。我已经可以做到这一点,但图像看起来垂直拉伸。
这是我得到的截图。请注意gridview
单元格大于图像
gridview
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical" >
<include
android:id="@+id/include1"
layout="@layout/header" />
<GridView
android:id="@+id/gvCategory"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:background="@drawable/bg"
android:gravity="right"
android:horizontalSpacing="5dp"
android:numColumns="2"
android:padding="0dp"
android:verticalSpacing="5dp" >
</GridView>
</LinearLayout>
gridview单元格布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/include21nh"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/include21"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn"
android:padding="5dp" >
<ImageView
android:id="@+id/imgCategoryImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@drawable/img1" />
<TextView
android:id="@+id/txtCategoryName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_gravity="bottom"
android:background="@drawable/transparent_fading"
android:gravity="right"
android:padding="15dp"
android:text="Crispy Chicken and Sandwich"
android:textColor="#ffffff"
android:textSize="17sp" />
</FrameLayout>
</LinearLayout>
答案 0 :(得分:1)
您应该在代表android:scaleType="centerInside"
中的项目的ImageView
内使用GridView
属性。正如文档所说:
CENTER_INSIDE - 均匀缩放图像(保持图像的外观 比率),以便图像的尺寸(宽度和高度)都是 等于或小于视图的相应尺寸(减去 填充)。
您可以找到更多信息here。希望这会有所帮助。