Android GridView控件学习

GridView:

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。

电影票预售表格效果,纯文字


res/values/arrays.xml


    
        A1 满
        A2 满
        A3 满
        B1 空
        B2 空
        B3 满
        C1 空
        C2 满
        C3 空
    

main.xml


    
    


    



package com.ncsyeyy.YeyyGridView;


import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.GridView;


public class MyActivity extends Activity {


    private GridView gridView;
    private ArrayAdapter adapter;


    /**
     * GridView的一些特殊属性:


     1.android:numColumns=”auto_fit”   //GridView的列数设置为自动
     2.android:columnWidth=”90dp "       //每列的宽度,也就是Item的宽度
     3.android:stretchMode=”columnWidth"//缩放与列宽大小同步
     4.android:verticalSpacing=”10dp”          //两行之间的边距
     5.android:horizontalSpacing=”10dp”      //两列之间的边距
     6.android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景
     7.android:listSelector="#00000000"        //去除选中时的黄色底色
     8.android:scrollbars="none"                   //隐藏GridView的滚动条
     9.android:fadeScrollbars="true"             //设置为true就可以实现滚动条的自动隐藏和显示
     10.android:fastScrollEnabled="true"      //GridView出现快速滚动的按钮(至少滚动4页才会显示)
     11.android:fadingEdge="none"                //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。(可以理解为上下边缘的提示色)
     12.android:fadingEdgeLength="10dip"   //定义的衰落(褪去)边缘的长度
     13.android:stackFromBottom="true"       //设置为true时,你做好的列表就会显示你列表的最下面
     14.android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内
     15.android:drawSelectorOnTop="false"  //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false)
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findView();
        setGridView();


    }
    private void setGridView(){
        //将可选内容与ArrayAdapter连接起来
        adapter = ArrayAdapter.createFromResource(this, R.array.seat, android.R.layout.simple_gallery_item);
        gridView.setAdapter(adapter);
    }
    private void findView(){
        gridView = (GridView) findViewById(R.id.gridView);
    }
}
Android GridView控件学习_第1张图片



GridView→图片文字适配
第一步:布局文件GridView控件,注意限制行数
第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
第三步:javaBean实体类,构造函数,调用函数
第四步:adapter,自定义适配器,适配item view
第五步:activity来实现功能


→findViewById
→得到数据
    →listView 适配


第一步:布局文件GridView控件,注意限制行数
gridview.xml




    




第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
girdview_item.xml



    



第三步:javaBean实体类,构造函数,调用函数
MyFile javaBean文件
package com.ncsyeyy.YeyyGridView;


/**
 * Created by yeyy on 9/11/2015.
 */
public class MyFile {
    //    实体类,给gridView设置数据
    public String FileName;
    public int ImageId;


    public MyFile() {
        super();
    }


    public MyFile(String fileName, int imageId) {
        super();
        FileName = fileName;
        ImageId = imageId;
    }
}



第四步:adapter,自定义适配器,适配item view


//        一般如果只有几个固定的item,就用此方法写,当你需要加载很多数据item的时候,就需要优化了
//        方法一 把布局文件填充成一个View对象
//        View view=View.inflate(context,R.layout.home_gridview_item,null);//把布局文件填充成一个view对象
//        方法二
//        LayoutInflater inflater=LayoutInflater.from(context);//获取布局填充器对象
//        View view1 = inflater.inflate(R.layout.home_gridview_item,null);//使用布局填充器填充布局文件
//      方法三
//        LayoutInflater inflater=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
//        View view2 = inflater.inflate(R.layout.home_gridview_item,null);


package com.ncsyeyy.YeyyGridView;


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;


import java.util.List;


/**
 * Created by yeyy on 9/11/2015.
 */
public class FileListAdapter extends BaseAdapter{
//    定义Context
    private Context context;
//    定义要显示的myFile列表
    private List fileList;


//    FileListAdapter构造方法
public FileListAdapter(Context context, List fileList) {
    this.context = context;
    this.fileList = fileList;
}
//    获取显示的条目数量
@Override
    public int getCount() {
        return fileList.size();
    }
//获取列表中的单个对象
    @Override
    public Object getItem(int position) {
        return fileList.get(position);
    }
//获取雷彪对象的Id
    @Override
    public long getItemId(int position) {
        return position;
    }
//构造每一个item的View视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
//        第一位置占位符类的对象
        ViewHolder viewHolder=new ViewHolder();
        if(convertView==null){
//            初始化当前view的布局视图
            convertView= LayoutInflater.from(context).inflate(R.layout.gridview_item,null);
        }
//        获取到对应的控件对象
        viewHolder.fileImage=(ImageView) convertView.findViewById(R.id.gridView_item_image);
        viewHolder.fileName=(TextView) convertView.findViewById(R.id.gridView_item_name);
//给控件对象设置相应的内容
        viewHolder.fileImage.setBackgroundResource(fileList.get(position).ImageId);
        viewHolder.fileName.setText(fileList.get(position).FileName);
        return convertView;
    }
//    定义内部类作为占位符组合
    class ViewHolder{
        ImageView fileImage;
        TextView fileName;
}


}


第五步:activity来实现功能


→findViewById
→得到数据
    →listView 适配
package com.ncsyeyy.YeyyGridView;


import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;


import java.util.ArrayList;
import java.util.List;


/**
 * Created by yeyy on 9/11/2015.
 */
public class GridViewActivity extends Activity {


    private GridView gv;
//    定义用来存储需要显示的对象列表
    private List fileList=new ArrayList();
    private FileListAdapter fileListAdapter;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gridview);
        findView();
        setData();
        setGridView();
    }
    private void setData(){
//        构造模拟数据
        fileList.add(new MyFile("a",R.drawable.a));
        fileList.add(new MyFile("b",R.drawable.b));
        fileList.add(new MyFile("c",R.drawable.c));
        fileList.add(new MyFile("d",R.drawable.d));
        fileList.add(new MyFile("e",R.drawable.e));
        fileList.add(new MyFile("f",R.drawable.f));
        fileList.add(new MyFile("g",R.drawable.g));
        fileList.add(new MyFile("h",R.drawable.h));
    }
private void setGridView(){
    fileListAdapter = new FileListAdapter(this,fileList);
    gv.setAdapter(fileListAdapter);
}
    private void findView(){
        gv = (GridView) findViewById(R.id.gridView_image);
    }
}

Android GridView控件学习_第2张图片


源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9107089


你可能感兴趣的:(Android学习)