如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。最常见的应用场合 九宫格,QQ表情等。
适配器选择问题:①ArrayAdapter适用于单行文字显示,数据源是list。
②SimpleAdapter适用于图文混排,数据源通常是List
。
③最常用的还是自定义 的MyAdapter。比较适合复杂item排版
此处使用SimpleAdapter,注意五个参数。
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"
>
<GridView
android:id="@+id/gview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp"
/>
RelativeLayout>
GridView的一些属性:
android:numColumns=”auto_fit” ——–列数根据屏幕自动
android:columnWidth=”90dp”,———-每列的宽度,即Item的宽度
android:stretchMode=”columnWidth”——缩放与列宽大小同步
android:verticalSpacing=”10dp”———-行间距
android:horizontalSpacing=”10dp”——-列间距
MainActivity
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;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
private GridView gview;
private List
item.xml
<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/iv_item_gridview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="5"
/>
<TextView
android:id="@+id/tv_item_gridview"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:ellipsize="end"
android:singleLine="true"
/>
LinearLayout>