【问题标题】:How to display a set of images in GridView, with their normal size如何在 GridView 中以正常大小显示一组图像
【发布时间】:2012-09-28 14:54:06
【问题描述】:

如果我有一组相同大小的图像 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>

【问题讨论】:

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

标签: android gridview imageview


【解决方案1】:

您应该在ImageView 中使用android:scaleType="centerInside" 属性,该属性表示您的GridView 中的一个项目。正如文档所说:

CENTER_INSIDE - 统一缩放图像(保持图像的纵横比 比率),以便图像的两个尺寸(宽度和高度)都是 等于或小于视图的相应尺寸(减去 填充)。

您可以找到更多信息here。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多