Android学习 18 ->网格控件GridView
来源:互联网 发布:网络口语培训哪家好 编辑:程序博客网 时间:2024/04/28 19:48
GridView是一项显示二维的viewgroup,可滚动的网格。一般用来显示多张图片。是一个在平面上可显示多个条目的可滚动的视图组件,该组件中的条目通过一个ListAdapter和该组件进行关联。其实其效果和GridLayout布局形式差不多。
官方定义的xml属性:
属性名称
描述
android:columnWidth
设置列的宽度。关联的方法为:setColumnWidth(int)
android:gravity
设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical 可以多选,用“|”分开。关联方法:setGravity (int gravity)
android:horizontalSpacing
两列之间的间距。关联方法:setHorizontalSpacing(int)
android:numColumns
列数。关联方法:setNumColumns(int)
android:stretchMode
缩放模式。关联方法:setStretchMode(int)
android:verticalSpacing
两行之间的间距。关联方法:setVerticalSpacing(int)
其中android:numColumns=" "设置列数," "中如果是制定的数字就是设置相对应的列数,而" "中为auto_fit时则是系统根据你放置的内容来自动匹配列数。
以下图所示界面为例:
所需要的代码以及xml布局如下:
activity_auto_complet_textview_layout.xml布局:
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/my_gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="5dp" android:horizontalSpacing="5dp" android:numColumns="3" android:verticalSpacing="5dp" /></LinearLayout></span>
item_gridview.xml布局:
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> <ImageView android:id="@+id/msg_grid_img" android:layout_width="wrap_content" android:layout_height="80dp" android:background="@drawable/ped" /> <TextView android:id="@+id/msg_gridview_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="你好Android" android:layout_marginTop="5dp" android:textSize="12sp" /></LinearLayout></span>
其GridViewActivity代码中用的是之前设置的自定义适配器:
<span style="font-size:18px;">package com.sc.android.ui.gritview;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.TextView;import com.sc.android.R;import com.sc.android.activity.bean.InformationBean;public class GridViewActivity extends Activity {private GridView mGridView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gridview_layout);mGridView = (GridView) findViewById(R.id.gridview);GridAdapter adapter = new GridAdapter(this, getData());mGridView.setAdapter(adapter);}public List<InformationBean> getData() {List<InformationBean> list = new ArrayList<InformationBean>();InformationBean information = new InformationBean();information.setTitle("qwasfasfdsadt");information.setIcon(R.drawable.gyy1);list.add(information);information = new InformationBean();information.setTitle("asdfsdafsdafsdf");information.setIcon(R.drawable.ka1);list.add(information);information = new InformationBean();information.setTitle("sdfqwetsdagfdas");information.setIcon(R.drawable.nll1);list.add(information);information = new InformationBean();information.setTitle("adsfsdagdsagew");information.setIcon(R.drawable.nll2);list.add(information);information = new InformationBean();information.setTitle("asdfasdt3fsda");information.setIcon(R.drawable.qz1);list.add(information);information = new InformationBean();information.setTitle("qwasfasfdsadt");information.setIcon(R.drawable.gyy1);list.add(information);information = new InformationBean();information.setTitle("asdfsdafsdafsdf");information.setIcon(R.drawable.ka1);list.add(information);information = new InformationBean();information.setTitle("sdfqwetsdagfdas");information.setIcon(R.drawable.nll1);list.add(information);information = new InformationBean();information.setTitle("adsfsdagdsagew");information.setIcon(R.drawable.nll2);list.add(information);information = new InformationBean();information.setTitle("asdfasdt3fsda");information.setIcon(R.drawable.qz1);list.add(information);information = new InformationBean();information.setTitle("qwasfasfdsadt");information.setIcon(R.drawable.gyy1);list.add(information);information = new InformationBean();information.setTitle("asdfsdafsdafsdf");information.setIcon(R.drawable.ka1);list.add(information);information = new InformationBean();information.setTitle("sdfqwetsdagfdas");information.setIcon(R.drawable.nll1);list.add(information);information = new InformationBean();information.setTitle("adsfsdagdsagew");information.setIcon(R.drawable.nll2);list.add(information);information = new InformationBean();information.setTitle("asdfasdt3fsda");information.setIcon(R.drawable.qz1);list.add(information);return list;}public class GridAdapter extends BaseAdapter {private List<InformationBean> mList = new ArrayList<InformationBean>();;private LayoutInflater mInflater;public GridAdapter(Context context, List<InformationBean> list) {mList = list;mInflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return mList.size();}@Overridepublic Object getItem(int position) {return mList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ContentMessge content;if (convertView == null) {convertView = mInflater.inflate(R.layout.item_gridview, null);content = new ContentMessge();content.iconImg = (ImageView) convertView.findViewById(R.id.msg_grid_img);content.textTitle = (TextView) convertView.findViewById(R.id.msg_gridview_txt);convertView.setTag(content);} else {content = (ContentMessge) convertView.getTag();}InformationBean information = (InformationBean) getItem(position);content.iconImg.setBackgroundResource(information.getIcon());content.textTitle.setText(information.getTitle());return convertView;}}class ContentMessge {ImageView iconImg;TextView textTitle;}}</span>
自定义的适配器在之前的内容中已经有,此处就不再重复代码了,当然也可以用系统的适配器实现。
- Android学习 18 ->网格控件GridView
- android 控件 网格视图(GridView)
- 网格控件GridView在Android中的使用
- 网格控件GridView在Android中的使用
- Android中的GridView网格视图控件
- Android UI控件详解-GridView(网格视图)
- Android控件之GridView 网格视图组件
- [控件]GridView网格视图
- GridView网格控件
- GridView网格控件
- GridView 刷新网格控件
- 【Android 开发】:UI控件之 GridView 网格控件的使用
- Android GridView控件学习
- android 控件学习---------GridView
- 网格控件GridView在Android中的使…
- Android 网格视图GridView
- android GridView网格组件
- android gridview网格视图
- OC大补之法
- 在Ubuntu 11.04中执行sudo apt-get update命令时出现404错误
- [Objective-C] 通过objc_get/setAssociatedObject 在category里加入成员变量
- List,set,Map 的用法和区别
- 【Java 学习笔记】 HashMultimap(guava)
- Android学习 18 ->网格控件GridView
- DOM元素尺寸offsetWidth,scrollWidth,clientWidth等详解
- struts2学习笔记
- 多线程编程
- 分享 ASP.Net 网站设置 404错误跳转到指定页面的三种方法
- 算法导论(CLRS)答案
- LeetCode 题解(142): Reorder List
- Java:String类的常用方法
- Sequence Generator分析