Android网格视图示例

时间:2020-02-23 14:28:58  来源:igfitidea点击:

Android网格视图是许多应用程序中最常用的布局之一。本教程通过示例说明栅格视图布局。

GridView

gridview是android中的一种布局,它允许我们在二维可滚动网格中排列组件。GirdView中的组件不一定是静态的,它可以存储在ListAdapter中(适配器就像数据和UI组件之间的桥梁)。

在日历视图和其他网格应用程序中很常见。

网格视图属性

以下是Android网格视图布局的一些XML属性。

android:gravity,表示中心、底部、顶部、左侧等每个单元格的重力。

android:columnWidth,用于指定每个单元格的列宽度。

android:horizontalSpacing,指定网格列之间的水平间距。

android:verticalSpacing,用于指定网格行之间的垂直间距。

android:numColumns,指定要显示的列数。

网格视图方法

网格视图有许多方法可以使用,这里将对其中一些方法进行解释

getAccessibilityClassName():返回object的类名。

getAdapter():返回与之关联的适配器。

getColumnWidth():返回网格上某列的宽度。

getGravity():返回网格组件的重力,即它们水平对齐的方式。

getHorizontalSpacing():返回网格组件之间的水平间距。

getNumColumns():获取网格中的列数。

setAdapter(ListAdapter):用于设置网格视图后面的数据。

setColumnWidth(int columnWidth):用于设置列宽。

setGravity(int-gravity):用于设置网格组件的重力。

setHorizontalSpacing(int horizontalSpacing):用于设置水平间距,将项目放入网格中。

setVerticalSpacing(int verticalSpacing):用于设置垂直间距,将项目放置在网格上。

网格视图构造函数

网格视图有四个不同的公共构造函数,定义如下

  • GridView( Content context)
  • GridView( Content context, AttributeSet attrs)
  • GridView( Content context, AttributeSet attrs, int defStyleAttr)
  • GridView( Content context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

网格视图示例

这个例子展示了如何在Android中使用GridView布局。如前所述,GridView可以直接使用,也可以与自定义适配器一起使用。这个例子显示了小型和大写英文字母的网格。

打开androidstudio并开始创建一个新项目。在主代码中粘贴并创建以下活动_活动.xml.

<?xml version="1.0" encoding="utf-8"?>

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/gridView1"
  android:numColumns="auto_fit"
  android:gravity="center"
  android:columnWidth="80dp"
  android:stretchMode="columnWidth"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" >
</GridView>

打开主活动.java然后粘贴这个代码

package com.example.admin.gridviewexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

  GridView gridView;

  static final String[] numbers = new String[] {
          "A", "B", "C", "D", "E",
          "F", "G", "H", "I", "J",
          "K", "L", "M", "N", "O",
          "P", "Q", "R", "S", "T",
          "U", "V", "W", "X", "Y", "Z", "\n","\n","\n","\n",
          "a", "b","c","d","e",
          "f","g","h","i","j",
          "k","l","m","n","o",
          "p","q","r","s","t",
          "u","v","w","x","y",
          "z"};

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      gridView = (GridView) findViewById(R.id.gridView1);

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, numbers);

      gridView.setAdapter(adapter);

      gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View v,
                                  int position, long id) {
              Toast.makeText(getApplicationContext(),
                      ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
          }
      });

  }

}