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的使用就算结束,效果图如下:


android




转载地址:http://www.linuxidc.com/Linux/2012-06/62272.htm

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 商家未发货我误点了确认收货怎么办 淘宝买货商家不发货也不退款怎么办 商家没发货点成收货了怎么办 淘宝新店上架产品未通过审核怎么办 安卓手机电池虚电怎么办_查查吧 拼多多拼单期间商家下架商品怎么办 微信绑别人的卡需要人脸认证怎么办 支付宝把钱转到了停用的账号怎么办 我注册征信账号忘记了要怎么办 客户说考虑考虑我该怎么办招商类 浴巾用久了黑黑的洗不干净怎么办 wifi密码被别人改了怎么办啊 苹果手机更新后账号密码忘了怎么办 专项预审批额度额度时效了怎么办 id密码和id码丢了怎么办 手机卡丢了id密码忘了怎么办 不想叫爱派登录我的微信怎么办 pr中素材与新建序列不匹配怎么办 淘宝客户收到货不承认要退款怎么办 淘宝包邮店铺 新疆地区拍怎么办 唯品会换货上门但自己寄了怎么办 闲鱼实名认证拍身份证不行怎么办 支付宝绑定的身份证过期了怎么办 实名认证的淘宝店铺被骗走了怎么办 移动宽带los灯亮红灯闪烁怎么办 天猫精灵方糖不支持5g怎么办 天猫精灵方糖连不上网怎么办 设置隐私相片里没什么都没有怎么办 我的手机丢了里面有隐私相片怎么办 苹果5s的id关了怎么办 用op手机快手拍视频打不开怎么办 苹果8p用流量下载不了软件怎么办 流量下载不了内存大的游戏怎么办 苹果6s开机密码忘记了怎么办 咸鱼买东西没寄买家申请退款怎么办 淘宝商品缺货又不想下架怎么办 房产代理商不给我结佣金怎么办 天猫客服遇到脾气不好的客户怎么办 美团外卖点的食品与描述不符怎么办 淘宝极速退款后买家又不想退怎么办 宝贝破损买家退回运费很高怎么办