【问题标题】:Gridview displaying only 12 images in androidGridview在android中只显示12张图片
【发布时间】:2012-12-18 02:06:41
【问题描述】:

我有一个 gridView,每个项目都有一个要加载的图像。我已经使用适配器来渲染图像。我使用可绘制文件夹中的图像创建的资源 ID 数组将图像分配为 gridView 项。

问题是 gridView 仅显示 12 张图像(适合视图而无需滚动)。我在该数组中有大约 40 个图像资源 ID。 getView 仅被调用 12-13 次。

您能帮我在网格视图中显示所有 40 张图像吗?是否需要在 grid.xml 中显式添加滚动窗格?

下面是grid.xml布局

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" 
        android:background="@drawable/wooden_background"
         android:id="@+id/RootView">
         <GridView
            android:id="@+id/gridView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numColumns="3"
            android:stretchMode="columnWidth"
            android:padding="5dp"
            android:verticalSpacing="5dp"
            android:horizontalSpacing="5dp"
            android:gravity="center"
            android:maxWidth="150dip"
            android:maxHeight="150dip" >

        </GridView>

    </LinearLayout>

下面是adapter里面的getView函数

    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi;
    if (convertView == null){  // if it's not recycled, initialize some attributes
        vi = inflater.inflate(R.layout.each_image,parent, false);
    }
    else{
        vi=convertView;
    }
        /*imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(170,170));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);*/

    System.out.println("Inside getView");
    ImageView image = (ImageView)vi.findViewById(R.id.imageView);
    image.setMaxHeight(150);
    image.setMinimumHeight(150);
    image.setScaleType(ImageView.ScaleType.FIT_XY );
    image.setImageResource(imageIngredientsID[position]);

    return vi;
}

【问题讨论】:

  • 我已经编辑了我的问题,添加了 getView 函数。

标签: android


【解决方案1】:

gridview 获得多少项目完全取决于适配器中的 getCount() 方法,它返回什么? 12 点?

【讨论】:

  • 嘿,非常感谢。我犯了一个愚蠢的错误。我已将计数设置为长度为 12 的旧静态数组,因此它仅显示 12 张图像。非常感谢这个提示:)
【解决方案2】:

尝试在布局中添加ScrollView

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="@drawable/wooden_background"
     android:id="@+id/RootView">
     <GridView
        android:id="@+id/gridView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:stretchMode="columnWidth"
        android:padding="5dp"
        android:verticalSpacing="5dp"
        android:horizontalSpacing="5dp"
        android:gravity="center"
        android:maxWidth="150dip"
        android:maxHeight="150dip" >

    </GridView>

</LinearLayout>
</ScrollView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多