如何创建一个GirdView,其中的图像是矩形(120 x 58.5),这将导致非方形单元格?目前,如果我有这种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>
感谢您的帮助。
答案 0 :(得分:2)
在我看来,理想的解决方案是为gridview布局中的项创建布局文件,您可以在其中指定图像的高度(使用ImageView)。然后,您可以使用带有LayoutInflater的自定义适配器将网格视图项目与主布局连接。
这是一个很棒的教程(2.示例):http://www.mkyong.com/android/android-gridview-example/
答案 1 :(得分:0)
最简单的方法就是在适配器中设置imageview的宽度和高度。
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,
}
}
然后将适配器设置为gridview。
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));