说到GridView Listview一定会提到他的adapter,现整理如下:

main.xml布局里面:

<GridViewandroid: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 tagviewTag = 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 nameviewTag.mName.setText(mNameList.get(position));// set iconviewTag.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的使用就算结束,效果图如下:



更多相关文章

  1. Android(安卓)ButterKnife Zelezny
  2. Android系统(168)---Android(安卓)开源项目分类汇总
  3. android ListView增加Animation效果
  4. Android学习笔记:RecyclerView
  5. android模仿微信朋友圈图片预览转场缩放动画
  6. Android的Layout --- 布局
  7. Android(安卓)PullZoomView:PullToZoomScrollViewEx(2)
  8. Android开发常见错误及技巧

随机推荐

  1. [原]如何在Android用FFmpeg+SDL2.0解码图
  2. android:ellipsize属性 textview
  3. Android异步消息处理机制
  4. Android键盘系统
  5. RelativeLayout的对齐属性大全(LinearLayo
  6. Android设置item的行间距,以及去掉分割线
  7. android 风格
  8. Android入门教程(三)之------导入现有And
  9. 生成release版本的Android係統
  10. NDK版本与Android固件要求对应表