Android基礎入門教程——2.4.9 GridView(網格視圖)的基本使用

來源:互聯網
上載者:User

標籤:android   網格視圖   gridview   

Android基礎入門教程——2.4.9 GridView(網格視圖)的基本使用

標籤(空格分隔): Android基礎入門教程

本節引言:

本節給大家介紹的是第二個Adapter類的控制項——GridView(網格視圖),見名知義,ListView是列表,
GridView就是顯示網格!他和ListView一樣是AbsListView的子類!很多東西和ListView都是相通的,
本節我們就來學習他的基本用法~

1.相關屬性:

下面是GridView中的一些屬性:

  • android:columnWidth:設定列的寬度
  • android:gravity:組件對其方式
  • android:horizontalSpacing:水平方向每個儲存格的間距
  • android:verticalSpacing:垂直方向每個儲存格的間距
  • android:numColumns:設定列數
  • android:stretchMode:設定展開模式,可選值如下:
    none:不展開;spacingWidth:展開元素間的間隔空隙
    columnWidth:僅僅展開表格元素自身
    spacingWidthUniform:既拉元素間距又展開他們之間的間隔空襲
2.使用樣本:

下面通過一個簡單的例子來熟悉這個控制項的使用:
(這裡用的Adapter我們直接用之2.4.7中教大家寫的可複用的BaseAdapter~)

實現的

代碼實現

首先是GridView 的 Item的布局:item_grid_icon.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:padding="5dp">    <ImageView        android:id="@+id/img_icon"        android:layout_width="64dp"        android:layout_height="64dp"        android:layout_centerInParent="true"        android:src="@mipmap/iv_icon_1" />    <TextView        android:id="@+id/txt_icon"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/img_icon"        android:layout_centerHorizontal="true"        android:layout_marginTop="30dp"        android:text="呵呵"        android:textSize="18sp" /></RelativeLayout>

接著我們寫個entity實體類:Icon.java

/** * Created by Jay on 2015/9/24 0024. */public class Icon {    private int iId;    private String iName;    public Icon() {    }    public Icon(int iId, String iName) {        this.iId = iId;        this.iName = iName;    }    public int getiId() {        return iId;    }    public String getiName() {        return iName;    }    public void setiId(int iId) {        this.iId = iId;    }    public void setiName(String iName) {        this.iName = iName;    }}

最後是MainActivity的布局以及Java代碼

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:padding="5dp"    tools:context=".MainActivity">    <!--numColumns設定每行顯示多少個-->    <GridView        android:id="@+id/grid_photo"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:numColumns="3" /></RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {    private Context mContext;    private GridView grid_photo;    private BaseAdapter mAdapter = null;    private ArrayList<Icon> mData = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mContext = MainActivity.this;        grid_photo = (GridView) findViewById(R.id.grid_photo);        mData = new ArrayList<Icon>();        mData.add(new Icon(R.mipmap.iv_icon_1, "表徵圖1"));        mData.add(new Icon(R.mipmap.iv_icon_2, "表徵圖2"));        mData.add(new Icon(R.mipmap.iv_icon_3, "表徵圖3"));        mData.add(new Icon(R.mipmap.iv_icon_4, "表徵圖4"));        mData.add(new Icon(R.mipmap.iv_icon_5, "表徵圖5"));        mData.add(new Icon(R.mipmap.iv_icon_6, "表徵圖6"));        mData.add(new Icon(R.mipmap.iv_icon_7, "表徵圖7"));        mAdapter = new MyAdapter<Icon>(mData, R.layout.item_grid_icon) {            @Override            public void bindView(ViewHolder holder, Icon obj) {                holder.setImageResource(R.id.img_icon, obj.getiId());                holder.setText(R.id.txt_icon, obj.getiName());            }        };        grid_photo.setAdapter(mAdapter);        grid_photo.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(mContext, "你點擊了~" + position + "~項", Toast.LENGTH_SHORT).show();            }        });    }}

嗯,代碼非常簡單~

3.範例程式碼下載:

GridViewDemo1.zip

本節小結:

本節給大家介紹了第二個需要使用Adapter的UI控制項——網格視圖GridView,用法很簡單~
大家可以根據自己的需求進行擴充,比如用GridView顯示手機相簿~嗯,就說這麼多,
謝謝~

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android基礎入門教程——2.4.9 GridView(網格視圖)的基本使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.