GridView的基本使用

***GridView的基本使用

*定义:
GridView是一个表格显示资源的控件,可以在两个可滚动的方向上显示资源

*基本属性:
android:numColumns="auto_fit" :表示GridView中一行中展示item的列数,auto_fit表示根据手机屏幕的宽度由系统设置比较理想的列数,当然这里也可以指定具体列数
android:columnWidth="80dp" :设置每一列的宽度
android:horizontalSpacing="10dp" : 表示设置列之间的间距
android:verticalSpacing="10dp" :表示设置行之间的间距

*基本使用:和ListView的使用类似

xml布局中:

 <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/timg1" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

Java代码中:

public class ResultActivity extends Activity {
    private GridView gv;
    private List<Map<String, Object>> list;
    private int[] images = {R.drawable.timg1,R.drawable.timg2,R.drawable.timg3,R.drawable.timg4,R.drawable.timg5,R.drawable.timg6};
    //要注意几张图片的大小相同
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        
        gv = (GridView) findViewById(R.id.gv);
        list = new ArrayList<Map<String,Object>>();
        for (int i = 0; i < images.length; i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("img", images[i]);
            map.put("text", "头像-"+i);
            list.add(map);
        }
        MyBaseAdapter adapter = new MyBaseAdapter();
        gv.setAdapter(adapter);
    }
    
    class MyBaseAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if(convertView == null){
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.grid_item, null);
                holder = new ViewHolder();
                holder.iv = (ImageView) convertView.findViewById(R.id.imageView1);
                holder.tv = (TextView) convertView.findViewById(R.id.textView1);
                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }
            holder.iv.setImageResource((Integer) list.get(position).get("img"));
            holder.tv.setText((CharSequence) list.get(position).get("text"));
            return convertView;
        }
        
    }
    static class ViewHolder{
        ImageView iv;
        TextView tv;
    }
}

1503569-20181012122250864-780098085.png

转载于:https://www.cnblogs.com/SanguineBoy/p/9777480.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值