2

如何创建图像为矩形 (120 x 58.5) 的 GirdView,这会导致非方形单元格?目前,如果我有这个 XML 布局,则图像上方和下方都有空白,因为单元格是 120 x 120。每个单元格的宽度应该是 120,高度应该是 58。

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/AppsOverviewGrid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:columnWidth="120dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="8dp"
    android:stretchMode="columnWidth"
    android:gravity="center">
</GridView>

谢谢您的帮助。

4

2 回答 2

2

在我看来,理想的解决方案是为 gridview 布局中的项目创建一个布局文件,您可以在其中指定图像的高度(使用 ImageView)。然后,您可以使用带有 LayoutInflater 的自定义适配器将您的网格视图项与您的主布局连接起来。

这是一个很好的教程(2.示例):http ://www.mkyong.com/android/android-gridview-example/

于 2012-08-23T08:47:57.137 回答
0

最简单的方法就是在适配器中设置图像视图的宽度和高度。

public class ImageAdapter extends BaseAdapter {

 // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(120, 58));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(pictureArray[position]);

        return imageView;
    }

   // references to our images
    private Integer[] pictureArray= {
            R.drawable.pic1, R.drawable.pic2,
     }

}

然后将Adapter设置为gridview。

 GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));
于 2017-10-19T12:48:31.480 回答