Android开发中如何使用GridView
来源:互联网 发布:热分析软件有哪些 编辑:程序博客网 时间:2024/05/27 00:52
Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来应用的比较多的就是组合图片显示,基本用法如下:
首先写一个类继承BaseAdapter
package com.yarin.android.Examples_04_19;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class ImageAdapter extends BaseAdapter{// 定义Contextprivate ContextmContext;// 定义整型数组 即图片源private Integer[]mImageIds= { R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6, R.drawable.img7,R.drawable.img8, R.drawable.img1, };public ImageAdapter(Context c){mContext = c;}// 获取图片的个数public int getCount(){return mImageIds.length;}// 获取图片在库中的位置public Object getItem(int position){return position;}// 获取图片IDpublic long getItemId(int position){return position;}public View getView(int position, View convertView, ViewGroup parent){ImageView imageView;if (convertView == null){// 给ImageView设置资源imageView = new ImageView(mContext);// 设置布局 图片120×120显示imageView.setLayoutParams(new GridView.LayoutParams(85, 85));// 设置显示比例类型imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);}else{imageView = (ImageView) convertView;}imageView.setImageResource(mImageIds[position]);return imageView;}} 随后在主activity中使用该gridviewpackage com.yarin.android.Examples_04_19;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class Activity01 extends Activity{/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);//取得GridView对象GridView gridview = (GridView) findViewById(R.id.gridview);//添加元素给gridviewgridview.setAdapter(new ImageAdapter(this));// 设置Gallery的背景gridview.setBackgroundResource(R.drawable.bg0);//事件监听gridview.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View v, int position, long id){Toast.makeText(Activity01.this, "你选择了" + (position + 1) + " 号图片", Toast.LENGTH_SHORT).show();}});}}
main.xml如下:
<?xml version="1.0" encoding="utf-8"?><GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center"/>
转载地址:http://www.rom007.com/android-kai-fa-zhong-ru-he-shi-yong-gridview.html
Android GridView中GridAdapter 用法详解
说到Android GridView Listview一定会提到他的adapter,现整理如下:
main.xml布局里面:
<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" />
gridview_item.xml:
<?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>
java 代码:
GridView grid = (GridView) findViewById(R.id.grid); grid.setAdapter(new GridAdapter(this, mNameList, mDrawableList));
GridAdapter.java类:
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; /** * The constructor to construct a navigation view tag * * @param name * the name view of the item * @param size * the size view of the item * @param icon * the icon view of the item */ public ItemViewTag(ImageView icon, TextView name) { this.mName = name; this.mIcon = icon; } } }
到此,adapter的使用就算结束,效果图如下:
转载地址:http://www.linuxidc.com/Linux/2012-06/62272.htm
- Android开发中如何使用GridView
- Android开发中GridView的使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android中GridView使用
- Android开发GridView的使用
- Android中GridView的使用
- android中GridView的使用
- Android中GridView使用总结
- android中GridView的使用
- Android中GridView的使用
- php5.5新数组函数array_column应用实例分享
- Linux 下 cmake的下载、安装和使用图文说明 (cmake-2.8.11.2.tar.gz)
- Yii - relations数据关联中的统计功能
- 网站架构演进
- android 4.0如何打开无线设置界面?
- Android开发中如何使用GridView
- Hibernate3.32学习笔记_02
- java中Scanner类中next()与nextLine()的区别
- php获取客户端mac地址的实例分享
- 设备驱动-----并发控制--原子操作
- CentOS中安装LAMP完整流程
- unity3d 异步加载场景和游戏对象
- 关于Hibernate中many-to-one和one-to-many的一些理解
- php采集文章中图片并替换为本地地址的代码分享