Android之GridView
2015-06-14 18:39
483 查看
在Android程序设计中GridView跟ListView都是比较常用的多控件布局,前文中的adapter中大量使用了listview,在这里就不在对其进行介绍。GridView先将控件横向显示,然后纵向显示,是实现九宫图的首选!本文介绍的GridView用法跟之前介绍过的ListView极其类似。
GridView常用的XML属性:
android:columnWidth设置列的宽度。
android:gravity设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。
android:horizontalSpacing两列之间的间距。
android:numColumns设置列数。
android:stretchMode缩放模式。
android:verticalSpacing两行之间的间距。
GridView常用的XML属性:
android:columnWidth设置列的宽度。
android:gravity设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。
android:horizontalSpacing两列之间的间距。
android:numColumns设置列数。
android:stretchMode缩放模式。
android:verticalSpacing两行之间的间距。
<GridView android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="70dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" />
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" android:gravity="center" android:layout_gravity="center" > <LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" android:gravity="center" android:layout_gravity="center"> <ImageView android:id="@+id/grid_icon" android:layout_height="80dip" android:layout_width="80dip" android:gravity="center" android:layout_gravity="center" > </ImageView> <TextView android:id="@+id/grid_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:gravity="center" android:layout_gravity="center" android:textSize="13px" android:layout_marginTop="4dip" > </TextView> </LinearLayout> </FrameLayout>
GridView grid = (GridView) findViewById(R.id.grid); grid.setAdapter(new GridAdapter(this, mNameList, mDrawableList));
package com.android.test; import java.util.ArrayList; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class GridAdapter extends BaseAdapter { private ArrayList<String> mNameList = new ArrayList<String>(); private ArrayList<Drawable> mDrawableList = new ArrayList<Drawable>(); private LayoutInflater mInflater; private Context mContext; LinearLayout.LayoutParams params; public GridAdapter(Context context, ArrayList<String> nameList, ArrayList<Drawable> drawableList) { mNameList = nameList; mDrawableList = drawableList; mContext = context; mInflater = LayoutInflater.from(context); params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.gravity = Gravity.CENTER; } public int getCount() { return mNameList.size(); } public Object getItem(int position) { return mNameList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ItemViewTag viewTag; if (convertView == null) { convertView = mInflater.inflate(R.layout.gridview_item, null); // construct an item tag viewTag = new ItemViewTag( (ImageView) convertView.findViewById(R.id.grid_icon),
(TextView) convertView.findViewById(R.id.grid_name)); convertView.setTag(viewTag); } else { viewTag = (ItemViewTag) convertView.getTag(); } // set name viewTag.mName.setText(mNameList.get(position)); // set icon viewTag.mIcon.setBackgroundDrawable(mDrawableList.get(position)); viewTag.mIcon.setLayoutParams(params); return convertView; } class ItemViewTag { protected ImageView mIcon; protected TextView mName; public ItemViewTag(ImageView icon, TextView name) { this.mName = name; this.mIcon = icon; } } }
相关文章推荐
- Android Studio开发配置NDK环境
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- Android学习记录--ListView取id的疑问
- Android 4.0+ 系统中SystemBars的适配问题
- (转) Android开发性能优化简介
- android adb 读写模式 挂载文件系统
- Android中项目中各个文件夹的含义和用途详解
- Android---56---Android应用调用Web Service/号码归属地查询
- android笔记之ViewFlipper的使用
- Ubuntu环境:Android开发平台搭建
- Android开发之初识Camera图像采集
- Android开发之SurfaceView
- 联想ThinkCenter M4350t型号主机怎样开启Intel Virtualization Technology功能
- android开发论坛
- android开发论坛
- 菜鸟学Android笔记(三十一):Response实现验证码
- Android中 多线程下载原理
- 安卓android jni创建线程后无法findclass
- Android 获取View的高度和宽度
- Android.mk的用法和基础学习-----阿冬专栏