Android中GridView插件的使用方法

布局文件activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity" >
  <GridView
    android:id="@+id/gridView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginTop="16dp"
    android:numColumns="4"
    android:stretchMode="columnWidth" >
  </GridView>
</RelativeLayout>

gridview_item.xml

这个是一个item的单元格样式的,有图片和文字

<?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" >
  <ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="10dp"
    android:scaleType="fitCenter"
    android:src="@drawable/ic_launcher" />
  <TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="TextView" />
</LinearLayout>

MainActivity.java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
public class MainActivity extends Activity {
  private GridView gridView;
  private GridViewAdapter adapter;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 设置适配器的图片资源
    int[] imageId = new int[] { R.drawable.chat_tool_camera,
        R.drawable.chat_tool_location, R.drawable.chat_tool_paint,
        R.drawable.chat_tool_video, R.drawable.chat_tool_voice,
        R.drawable.chat_tool_camera, R.drawable.chat_tool_location,
        R.drawable.chat_tool_paint, R.drawable.chat_tool_video,
        R.drawable.chat_tool_voice, R.drawable.chat_tool_camera,
        R.drawable.chat_tool_location, R.drawable.chat_tool_paint,
        R.drawable.chat_tool_video, R.drawable.chat_tool_voice,
        R.drawable.chat_tool_camera, R.drawable.chat_tool_location,
        R.drawable.chat_tool_paint, R.drawable.chat_tool_video,
        R.drawable.chat_tool_voice };
    // 设置标题
    String[] title = new String[] { "相机", "定位", "画笔", "视频", "声音", "相机",
        "定位", "画笔", "视频", "声音", "相机", "定位", "画笔", "视频", "声音", "相机",
        "定位", "画笔", "视频", "声音" };
    List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>();
    // 将上述资源转化为list集合
    for (int i = 0; i < title.length; i++) {
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("image", imageId[i]);
      map.put("title", title[i]);
      listitem.add(map);
    }
    adapter = new GridViewAdapter(MainActivity.this, listitem);
    gridView = (GridView) this.findViewById(R.id.gridView);
    gridView.setAdapter(adapter);
  }
}

GridViewAdapter.java

这个是适配器

import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class GridViewAdapter extends BaseAdapter {
  private Context context;
  private List<Map<String, Object>> listitem;
  public GridViewAdapter(Context context,List<Map<String, Object>> listitem) {
    this.context = context;
    this.listitem = listitem;
  }
  @Override
  public int getCount() {
    return listitem.size();
  }
  @Override
  public Object getItem(int position) {
    return listitem.get(position);
  }
  @Override
  public long getItemId(int position) {
    return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
      convertView = LayoutInflater.from(context).inflate(R.layout.gridview_item, null);
    }
    ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
    TextView textView = (TextView) convertView.findViewById(R.id.textView);
    Map<String, Object> map = listitem.get(position);
    imageView.setImageResource((Integer) map.get("image"));
    textView.setText(map.get("title") + "");
    return convertView;
  }
}

效果图如下:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Android离线Doc文档访问速度慢的有效解决方法

    (1)我们在访问Android的离线文档,是非常慢的,由于需要加载一些图片或者是动态的脚本语言js代码, 网上的解决方法是删除所有的js含有链接的代码,这种方法不但笨拙,还不可以有效解决: 写一个java文件,运行后即可快速访问doc import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileFilter; import java.io.FileNot

  • Android使用Spinner控件实现下拉列表的案例

    (1)两种方法提冲Spinner中的数据源:通过list集合,或者是通过xml文件进行配置 (2)布局代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android

  • ubuntu环境下反编译android apk的方法

    使用ApkTool反编译Apk 下载  apktool1.4.3.tar.bz2 .apktool-install-linux-r04-brut1.tar.bz2 两个包,并解压到统一个目录中,解压后得到aapt  apktool  apktool.jar .解压安装完成后输入以下命令解压: <span>$ ./apktool d apk/xgd_android_test.apk I: Baksmaling... I: Loading resource table... I: Loaded.

  • Android单选按钮RadioButton的使用详解

    RadioButton是最普通的UI组件之一,继承了Button类,可以直接使用Button支持的各种属性和方法. RadioButton与普通按钮不同的是,它多了一个可以选中的功能,可额外指定一个android:checked属性,该属性可以指定初始状态时是否被选中,其实也可以不用指定,默认初始状态都不选中. 使用RadioButton必须和单选框RadioGroup一起使用,在RadioGroup中放置RadioButton,通过setOnCheckedChangeListener( )来响

  • Android使用AutoCompleteTextView实现自动填充功能的案例

    (1)首先实现AutoCompleteTextView功能所需要的适配器数据源共有两种方法,一种结果是手工配置的,另一汇总是通过xml文件制定的数据(当然也可以通过网上资源获得) 这里只讲前两种! (2)布局的页面代码都一样如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&

  • Android中Gallery和ImageSwitcher的使用实例

    效果如下: 布局文件activity_main.xml如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match

  • Android开关控件Switch的使用案例

    在很多app的设置页面,或者是一些功能的开关界面,我们常常用到 Switch(开关) 来展示状态,今天说说Switch控件. (1)布局文件代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

  • 实例讲解Android Fragment的两种使用方法

    一.第一种方法: (1)Fragment的第一种使用方法是使用fragment加载单独的布局文件:(也就是xml的方式实现) 结构如下: activity_main.xml主要是在一个线性布局中添加两个线性布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" androi

  • Android列表组件ListView使用详解之动态加载或修改列表数据

    在使用ListView组件来显示列表数据时,有的时候我们需要改变列表中的数据,有以下方法: 1.重新给ListView组件设置适配器 这种方法重新创建了ListView,效率不好. 2.使用适配器中的方法 /** * Notifies the attached observers that the underlying data has been changed * and any View reflecting the data set should refresh itself. */ pu

  • Android为textView设置setText的时候报错的讲解方案

    在对中TextView setText 覆值int 时报错,网上查下原因是setText整型表明是设值R.id.xxx,当然找不到. 解决方法是将int转化为string,用String.valueOf(xxx) 一.我的代码如下:就是我textView设置值 if (list != null) { for (Student stu : list) { //如果一下子赋值的话是不正确的 tv_name.setText(stu.getName()); tv_sex.setText(stu.getS

随机推荐