• Android UI开发第一篇——android的九宫格式实现


    今天在devdiv论坛里看到有坛友问到九宫格的实现,我把我在项目中用的经验分享一下。


    代码地址:http://download.csdn.net/detail/xyz_lmn/5151879


    xml代码:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res/com.google.android.gx5weather"
         android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:layout_weight="1.0"
         android:background="@drawable/bg"
         >
    <ImageView android:id="@+id/ImageView01"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="center_vertical"
               android:background="@drawable/top"></ImageView>  
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"   
        android:id="@+id/gridview" 
        android:layout_width="wrap_content"   
        android:layout_height="wrap_content" 
        android:numColumns="3" 
        android:verticalSpacing="30dip" 
        android:horizontalSpacing="10dip" 
        android:columnWidth="90dip"  //列宽
        android:stretchMode="columnWidth" 
        android:gravity="center"
        android:listSelector="@drawable/grid_selector_background"
    >
    </GridView>
    </LinearLayout>

    android:numColumns="3" //九宫格的列数  auto_fit时为自动
    android:listSelector="@drawable/grid_selector_background"   //九宫格的背景,可以找个圆角正方形

    public class NineBox extends Activity {

        /** Called when the activity is first created. */

        @Override

        protected void onCreate(Bundle savedInstanceState) {

    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

            this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 

                    WindowManager.LayoutParams.FLAG_FULLSCREEN);

         

            setContentView(R.layout.main_activity);

            GridView gridview=(GridView)findViewById(R.id.gridview);

            ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();  

            for(int i=1;i<10;i++)  

            {  

              HashMap<String, Object> map = new HashMap<String, Object>();

              if(i==1){

                    map.put("ItemImage", R.drawable.g11);

                    map.put("ItemText", getResources().getString(R.string.gridview1));

              }

              if(i==2){ 

                  map.put("ItemImage", R.drawable.g12);

                  map.put("ItemText", getResources().getString(R.string.gridview2));

            }

              if(i==3){ 

                  map.put("ItemImage", R.drawable.g13);

                  map.put("ItemText", getResources().getString(R.string.gridview3));

            }

              if(i==4){ 

                  map.put("ItemImage", R.drawable.g14);

                  map.put("ItemText", getResources().getString(R.string.gridview4));  

            }

              if(i==5){ 

                  map.put("ItemImage", R.drawable.g15);

                  map.put("ItemText", getResources().getString(R.string.gridview5));

            }

              if(i==6){ 

                  map.put("ItemImage", R.drawable.g16);

                  map.put("ItemText", getResources().getString(R.string.gridview6));

            }

              if(i==7){ 

                  map.put("ItemImage", R.drawable.g17);

                  map.put("ItemText", getResources().getString(R.string.gridview7));

            }

              if(i==8){ 

                  map.put("ItemImage", R.drawable.g18);

                  map.put("ItemText", getResources().getString(R.string.gridview8));

            }

              if(i==9){ 

                  map.put("ItemImage", R.drawable.g19);

                  map.put("ItemText", getResources().getString(R.string.gridview9));

            }

              lstImageItem.add(map);

             

            }  


     

            SimpleAdapter saImageItems = new SimpleAdapter(this,

                                                      lstImageItem,

                                                      R.layout.grid_item,     

                                                      new String[] {"ItemImage","ItemText"},   

                                                      new int[] {R.id.ItemImage,R.id.ItemText});  

     

            gridview.setAdapter(saImageItems);  

            gridview.setOnItemClickListener(new ItemClickListener());  

        }  

          

     

    class  ItemClickListener implements OnItemClickListener  

        {  


     

           @SuppressWarnings("unchecked")

    public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened   

                                          View arg1,//The view within the AdapterView that was clicked  

                                          int arg2,//The position of the view in the adapter  

                                          long arg3//The row id of the item that was clicked  

                                        ) {  

         

          HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);  

       

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview1))){

          Toast.makeText(NineBox.this, R.string.gridview1, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview2))){

          Toast.makeText(NineBox.this, R.string.gridview2, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview3))){

          Toast.makeText(NineBox.this, R.string.gridview3, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview4))){

          Toast.makeText(NineBox.this, R.string.gridview4, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview5))){

          Toast.makeText(NineBox.this, R.string.gridview5, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview6))){

          Toast.makeText(NineBox.this, R.string.gridview6, Toast.LENGTH_LONG).show();

          }


     

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview7))){

          Toast.makeText(NineBox.this, R.string.gridview7, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview8))){

          Toast.makeText(NineBox.this, R.string.gridview8, Toast.LENGTH_LONG).show();

          }

          if(item.get("ItemText").equals(getResources().getString(R.string.gridview9))){

          Toast.makeText(NineBox.this, R.string.gridview9, Toast.LENGTH_LONG).show();

          }

         }  

        }

    }

    /**
    * @author xyz_lmn
    * 邮箱:xy-zhang@163.com
    *
    */

  • 相关阅读:
    TCP通信 -C/S中的Socket与ServerSocket
    打印流 -可将数据写入文件/可改变输出方向
    转换流 -解决输入输出时编码格式不统一的问题
    字节/字符缓冲流
    Properties -IO相关的双列集合类
    IO流 -字符输入输出流,以及异常处理方法
    IO流
    线程间的通信
    o(* ̄︶ ̄*)o
    1
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168179.html
Copyright © 2020-2023  润新知