2012-09-28 27 views
1

如果我具有相同大小为211px x 165px的图像集,如何在网格视图中显示它们并保持高度和宽度之间的原始比例。需要在每一行显示两项。我已经可以做到这一点,但图像显示为垂直拉伸。 这里是我所得到的截图。请注意,gridview电池比图像 enter image description here如何在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

scaleType属性 – njzk2

+0

嗨,你解决了这个问题吗? – Sergii

回答

1

您应该使用android:scaleType="centerInside"属性的ImageView内部的表示物品在您的GridView。作为文档说:

CENTER_INSIDE - 均匀地缩放图像(保持图像的宽高比 比),以使得图像的两个尺寸(宽度和高度)会比的相应尺寸 等于或小于查看(减去 填充)。

你可以找到更多信息here。希望这可以帮助。

+0

请检查更新 – Adham

相关问题