安卓笔记之GridView

package com.example.day0328_gridview;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class MainActivity extends Activity {
    //定义个网格布局对象
    private GridView gridView;
    //定义图片资源ID数组
    private int[] resIds = new int[]{
            R.drawable.img1,R.drawable.img2,    
            R.drawable.img3,R.drawable.img4,    
            R.drawable.img5,R.drawable.img6,    
            R.drawable.img7,R.drawable.img8,    
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获得GridView对象
        gridView = (GridView) findViewById(R.id.gv);
        //通过BASEAdapter把图片显示至gridView上
        gridView.setAdapter(new BaseAdapter() {
            
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                View view =null;
                ViewHolder holder=null;
                //判断缓存是否为空
                if (convertView==null) {
                    //把布局填充成一个View对象
                    view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, null);
                    //创建内部对对象
                    holder =new ViewHolder();
                    //拿到ImageView对象
                    holder.imageView =(ImageView) view.findViewById(R.id.iv);
                    //把holder封装至view里面
                    view.setTag(holder);
                }else{
                    //如果有缓存就直接从缓存中取出来
                    view =convertView;
                    //从view里面获取ViewHolder对象
                    holder =(ViewHolder) view.getTag();
                }
                //构造位图对象
                Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resIds[position]);
                //把位图对象设置到ImageView上
                holder.imageView.setImageBitmap(bitmap);
                //返回一个View对象
                return view;
            }
            
            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return 0;
            }
            
            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return null;
            }
            
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return resIds.length;
            }
            //内部类来封装属性
            class ViewHolder{
                public ImageView imageView;
            }
        });
    }
}
//布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <!-- 
    GridView 网格布局
    android:numcolumns 每行有多少列(auto_fit自适配)
     -->
    <GridView
        android:id="@+id/gv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:numColumns="auto_fit"
        android:horizontalSpacing="5dp"
        android:verticalSpacing="5dp"
        android:columnWidth="111dp"
        />

</RelativeLayout>
//image布局
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/iv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    

</ImageView>

 

posted @ 2016-03-28 16:52  丨缘来是你丨  阅读(163)  评论(0编辑  收藏  举报