Android GridView控件学习
2015-09-14 15:57
453 查看
GridView:
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。
电影票预售表格效果,纯文字
res/values/arrays.xml
main.xml
GridView→图片文字适配
第一步:布局文件GridView控件,注意限制行数
第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
第三步:javaBean实体类,构造函数,调用函数
第四步:adapter,自定义适配器,适配item view
第五步:activity来实现功能
→findViewById
→得到数据
→listView 适配
第一步:布局文件GridView控件,注意限制行数
gridview.xml
第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
girdview_item.xml
第三步:javaBean实体类,构造函数,调用函数
MyFile javaBean文件
第四步: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);
第五步:activity来实现功能
→findViewById
→得到数据
→listView 适配
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9107089
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。
电影票预售表格效果,纯文字
res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="seat"> <item>A1 满</item> <item>A2 满</item> <item>A3 满</item> <item>B1 空</item> <item>B2 空</item> <item>B3 满</item> <item>C1 空</item> <item>C2 满</item> <item>C3 空</item> </string-array> </resources>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="GridView电影预售表格效果" /> <GridView android:id="@+id/gridView" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3"> </GridView> </LinearLayout>
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<CharSequence> 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); } }
GridView→图片文字适配
第一步:布局文件GridView控件,注意限制行数
第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
第三步:javaBean实体类,构造函数,调用函数
第四步:adapter,自定义适配器,适配item view
第五步:activity来实现功能
→findViewById
→得到数据
→listView 适配
第一步:布局文件GridView控件,注意限制行数
gridview.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <GridView android:id="@+id/gridView_image" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3"/> </LinearLayout>
第二步:对应的item.xml布局文件,注意布局中图片文字的高度和宽度
girdview_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/gridView_item_image" android:layout_width="60dp" android:layout_height="60dp"/> <TextView android:id="@+id/gridView_item_name" android:layout_width="60dp" android:layout_height="wrap_content" android:gravity="center"/> </LinearLayout>
第三步: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<MyFile> fileList; // FileListAdapter构造方法 public FileListAdapter(Context context, List<MyFile> 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<MyFile> fileList=new ArrayList<MyFile>(); 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); } }
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9107089
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories