GridView的使用方法

1、写Activity :

public class GridViewActivity extends Activity {
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gridview);
        GridView grid = (GridView) findViewById(R.id.grid_view);
        grid.setAdapter(new ImageAdapter(this));
    }
    /**自定义图片Adapter以内部类形式存在于MainActivity中
     * 方便访问MainActivity中的各个变量,特别是imgs数组
     *
     * Adapter在Android应用程序中起着非常重要的作用,应用也非常广泛
     * 它可看作是数据源和UI组件之间的桥梁
     * BaseAdapter是实现了ListAdapter和SpinnerAdapter两个接口
     * 当然它也可以直接给ListView和Spinner等UI组件直接提供数据
     */
    public class ImageAdapter extends BaseAdapter{
     // 上下文
     private Context context;
     // 图片资源数组
        private Integer[] mThumbIds = {
                 R.drawable.grid_view_01, R.drawable.grid_view_02,
                 R.drawable.grid_view_03, R.drawable.grid_view_04,
                 R.drawable.grid_view_05, R.drawable.grid_view_06,
                 R.drawable.grid_view_07, R.drawable.grid_view_08,
                 R.drawable.grid_view_09, R.drawable.grid_view_10,
                 R.drawable.grid_view_11, R.drawable.grid_view_12,
                 R.drawable.grid_view_13, R.drawable.grid_view_14,
                 R.drawable.grid_view_15, R.drawable.sample_1,
                 R.drawable.sample_2,     R.drawable.sample_3,
                 R.drawable.sample_4,   R.drawable.sample_5,
                 R.drawable.sample_6,    R.drawable.sample_7
         };
       //构造方法
      public ImageAdapter(Context c){
       this.context=c;
      }
     // 组件个数
  public int getCount() {
   return mThumbIds.length;
  }
  //当前组件
  public Object getItem(int position) {
   return null;
  }
  //当前组件id
  public long getItemId(int position) {
   return 0;
  }
  //将获取数据后的View组件返回
  public View getView(int position, View convertView, ViewGroup parent) {
   //针对每一个数据(即每一个图片ID)创建一个ImageView实例
   ImageView imageView;
   if(convertView== null){
    imageView = new ImageView(context);  //针对外面传递过来的Context变量
    //设置Gallery中每一个图片的大小为85*85
    imageView.setLayoutParams(new GridView.LayoutParams(85,85));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setPadding(8, 8, 8, 8);
    
   }else{
    imageView=(ImageView) convertView;
   }
   imageView.setImageResource(mThumbIds[position]);
   return imageView;
  }
    }
}

2、写gridview.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/grid_view"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:numColumns="auto_fit"
  android:horizontalSpacing="10dp"
  android:verticalSpacing="10dp"
  android:columnWidth="90dp"
  android:stretchMode="columnWidth"
  android:gravity="center"
>

 

3、在AndroidManifest.xml中配置:

<activity android:name="GridViewActivity"></activity>

 

运行即可。

 

</GridView>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridViewAndroid中常用的布局控件之一,用于在屏幕上展示多行多列的数据,类似于网格的形式。下面是GridView使用方法: 1. 在布局文件中添加GridView控件 ```xml <GridView android:id="@+id/grid_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="3" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:padding="10dp" android:columnWidth="100dp" /> ``` 其中`numColumns`属性表示每行显示的列数,`verticalSpacing`和`horizontalSpacing`属性表示网格之间的垂直和水平间距,`padding`属性表示GridView的内边距,`columnWidth`属性表示每个网格的宽度。 2. 创建适配器Adapter GridView需要一个适配器来提供数据,可以使用ArrayAdapter或BaseAdapter。这里以BaseAdapter为例: ```java public class MyAdapter extends BaseAdapter { private Context mContext; private List<String> mData; public MyAdapter(Context context, List<String> data) { this.mContext = context; this.mData = data; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_item, null); holder = new ViewHolder(); holder.textView = convertView.findViewById(R.id.text_view); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.textView.setText(mData.get(position)); return convertView; } static class ViewHolder { TextView textView; } } ``` 适配器中重写了BaseAdapter的四个方法,其中`getView()`方法用于设置每个网格的内容。 3. 设置适配器Adapter 在Activity或Fragment中设置适配器: ```java GridView gridView = findViewById(R.id.grid_view); List<String> data = new ArrayList<>(); data.add("Item 1"); data.add("Item 2"); data.add("Item 3"); data.add("Item 4"); MyAdapter adapter = new MyAdapter(this, data); gridView.setAdapter(adapter); ``` 运行程序即可看到GridView中展示了四个网格,每个网格中显示了对应的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值