android宫格式布局
时间: 2023-10-01 18:06:38 浏览: 59
Android中的宫格布局可以使用GridView来实现。GridView是一个可滚动的视图,其中的元素按照网格形式排列。GridView需要一个adapter来提供数据和视图,可以使用ArrayAdapter或自定义的Adapter。
下面是一个简单的宫格布局实现:
1. 在XML布局文件中添加GridView组件:
```
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
```
2. 在Activity中获取GridView组件,并设置Adapter:
```
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
```
3. 自定义Adapter实现getView方法:
```
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// 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(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4,
R.drawable.image5, R.drawable.image6,
R.drawable.image7, R.drawable.image8,
R.drawable.image9, R.drawable.image10
};
}
```
这里使用了ImageView作为GridView的子项,并设置了每个子项的大小、填充和缩放方式。在getView方法中,将图片资源设置为ImageView的图像。
这样就可以实现一个简单的宫格布局。