gridview实现照片墙
时间: 2024-05-09 13:15:07 浏览: 40
Android.GridView实现宫式布局
4星 · 用户满意度95%
GridView 是 Android 中常用的列表控件之一,可以用于显示照片墙。下面是实现照片墙的步骤:
1. 在布局文件中添加 GridView 控件:
```
<GridView
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:verticalSpacing="8dp"
android:horizontalSpacing="8dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
```
其中,`numColumns` 表示列数,`verticalSpacing` 和 `horizontalSpacing` 表示每个单元格之间的垂直和水平间距。
2. 创建适配器类:
```
public class PhotoAdapter extends BaseAdapter {
private Context mContext;
private List<Integer> mPhotoList;
public PhotoAdapter(Context context, List<Integer> photoList) {
mContext = context;
mPhotoList = photoList;
}
@Override
public int getCount() {
return mPhotoList.size();
}
@Override
public Object getItem(int position) {
return mPhotoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mPhotoList.get(position));
return imageView;
}
}
```
其中,`mPhotoList` 是存放图片 ID 的列表。
3. 在 Activity 中设置适配器:
```
public class MainActivity extends AppCompatActivity {
private GridView mGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGridView = findViewById(R.id.grid_view);
List<Integer> photoList = new ArrayList<>();
photoList.add(R.drawable.photo1);
photoList.add(R.drawable.photo2);
photoList.add(R.drawable.photo3);
photoList.add(R.drawable.photo4);
photoList.add(R.drawable.photo5);
photoList.add(R.drawable.photo6);
photoList.add(R.drawable.photo7);
photoList.add(R.drawable.photo8);
photoList.add(R.drawable.photo9);
PhotoAdapter adapter = new PhotoAdapter(this, photoList);
mGridView.setAdapter(adapter);
}
}
```
在这里,我们创建了一个 `photoList` 列表,其中存放了图片的 ID,然后创建了一个 `PhotoAdapter` 适配器,并将其设置给 GridView 控件。最后,我们在 Activity 的布局文件中添加了一个 GridView 控件,通过布局文件中的 ID 获取该控件对象。
阅读全文