📌  相关文章
📜  GridView在示例中使用Android中的BaseAdapter(1)

📅  最后修改于: 2023-12-03 14:41:39.071000             🧑  作者: Mango

GridView在示例中使用Android中的BaseAdapter

GridView是Android中常用的布局控件之一,可以用来展示一组图片、文字等内容,常和BaseAdapter一起使用。本文将提供一个使用BaseAdapter展示图片的GridView示例,供程序员参考。

GridView的使用

GridView可用于展示一组图片或元素,通常需要以下步骤来实现GridView的使用:

  1. 在布局文件中添加GridView控件。
<GridView
    android:id="@+id/grid_view"
    android:numColumns="3"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"/>
  1. 在Activity中获取GridView控件,并设置Adapter。
GridView gridView = findViewById(R.id.grid_view);
gridView.setAdapter(new GridAdapter(this));
BaseAdapter的使用

BaseAdapter是一个抽象类,需要继承并实现其中的一些方法来创建Adapter,并将Adapter设置给GridView。通常需要实现以下方法:

  1. getCount() 方法:用于返回GridView中的元素数量。
  2. getItem(position) 方法:用于返回指定位置的元素。
  3. getItemId(position) 方法:用于返回指定位置元素的ID。
  4. getView(position, convertView, parent) 方法:用于将数据填充到GridView中。

下面是一个简单的示例 BaseAdapter 实现。在本示例中,我们将从资源文件中读取一组图片,并将图片展示在GridView上。

public class GridAdapter extends BaseAdapter {

    private Context mContext;
    private int[] mThumbIds = {
            R.drawable.pic1,
            R.drawable.pic2,
            R.drawable.pic3,
            R.drawable.pic4,
            R.drawable.pic5,
            R.drawable.pic6,
            R.drawable.pic7,
            R.drawable.pic8
    };

    public GridAdapter(Context context) {
        mContext = context;
    }

    public int getCount() {
        return mThumbIds.length; // 返回GridView中的元素数量
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // 将数据填充到GridView中
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // 如果convertView为空,则创建新的ImageView
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(340, 340));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }
}

最终效果如下:

GridView示例效果图

以上就是一个使用BaseAdapter实现的GridView示例。如果您想使用GridView展示其他类型的数据,只需要修改BaseAdapter中的数据源以及View的内容即可。