android學習——GridView實現主界面佈局

     GridView(網格視圖),用於在界面上按行、列分佈的方式顯示多個組件。GridView和ListView有相同的父類,因此他們具有相似的特性。他們的主要區別在於:ListView是在一個方向上分佈;而GridView 是在兩個方向上分佈。 
     GridView提供的常用XML屬性如下:
XML屬性 說明
android:columnWidth
設置列的寬度
android:gravity
設置對其方式
android:horizontalSpacing
設置各元素鍵的水平間距
android:numColumns
設置列數
android:stretchMode
設置拉伸模式
android:verticalSpacing
設置各元素之間的垂直間距
  實現GridView佈局主要分三個步驟:
1、在mian_interface.xml使用GridView佈局。
<?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" >
   
   <GridView
        android:id= "@+id/gridview"
        android:layout_width= "fill_parent"
        android:layout_height= "fill_parent"
        android:columnWidth= "90dp"
        android:gravity= "center"
        android:horizontalSpacing= "6dp"
        android:numColumns= "2"
        android:stretchMode= "columnWidth"
        android:verticalSpacing= "30dp" >
    </GridView >
   
</LinearLayout>

2、在grid_items.xml中實現主界面的UI
<?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:layout_height= "wrap_content"
        android:id= "@+id/itemImage"
        android:layout_width= "wrap_content"
        android:src= "@drawable/gerenxinxiguanli"
        android:layout_gravity= "center"
        android:contentDescription= "@string/gerenxinxiguanli">
    </ImageView >
   
    <!-- 顯示的文字 -->
    <TextView
        android:text= "@string/gerenxinxiguanli"
        android:id= "@+id/itemText"
        android:layout_width= "wrap_content"
        android:layout_height= "wrap_content"
        android:layout_gravity= "center">
    </TextView >

</LinearLayout>

3、接下來就是實現java代碼了。
public class MainInterfaceActivity extends Activity {
       //將圖片放入數組中
     int[] mainInterfaceImageIDs= {
                R.drawable. gerenxinxiguanli,
                R.drawable. xuankeguize,
                R.drawable. yixuankecheng,
                R.drawable. chengjichaxun,
                R.drawable. kechengchaxun,
                R.drawable. xuanke
     };
     //將圖片對應的文字內容存入一個數組
     String[] mainInterfaceStr = {
            "個人信息管理" ,
            "選課規則",
            "已選課程",
            "成績查詢",
            "課程查詢",
            "選課"
     };
     
     @Override
     protected void onCreate(Bundle savedInstanceState) {
           
            super.onCreate(savedInstanceState);
           setContentView(R.layout. mian_interface);
           GridView gridView = (GridView) findViewById(R.id.gridview);
           
            //生成動態數組,傳入數據
           ArrayList<HashMap<String, Object>> lstItems = new ArrayList<HashMap<String,Object>>();
            for( int i = 0;i < mainInterfaceImageIDs. length;i++){
                HashMap<String, Object> map = new HashMap<String, Object>();
                map.put( "itemsImage", mainInterfaceImageIDs[i]);
                map.put( "itemsText", mainInterfaceStr[i]);
                lstItems.add(map);
           }
           
           SimpleAdapter imageItems = new SimpleAdapter( this, lstItems, R.layout.grid_items ,
                      new String[]{ "itemsImage", "itemsText"}, new int[]{R.id. itemImage,R.id. itemText});
           gridView.setAdapter(imageItems);
           
           //當點擊圖片時進入相應的操作,暫時只實現了其中的兩個其他的都相似。
           gridView.setOnItemClickListener( new OnItemClickListener() {
                 public void onItemClick(AdapterView<?> arg, View v, int position, long id){
                     Intent intent = new Intent();
                      switch(position){
                      case 0:
                          intent.setClassName( "com.example.mobileelectivesystem",
                                      "com.example.mobileelectivesystem.GeRenXinXiGuanLiActivity" );
                           startActivity(intent);
                            break;
                      case 1:
                          intent.setClassName( "com.example.mobileelectivesystem",
                                      "com.example.mobileelectivesystem.XuanKeGuiZeActivity" );
                           startActivity(intent);                          
                            break;
                     }
                     Toast. makeText(getBaseContext(), "pic" + (position + 1) + " selected" ,
                                Toast. LENGTH_SHORT).show();
                }
           });
     }
}
 
效果圖:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章