日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中用GridView实现九宫格的两种方法

發布時間:2025/6/15 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中用GridView实现九宫格的两种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.傳統辦法:實現一個繼承BaseAdapter的 ImageAdapter


java代碼如下:


[java]?view plaincopy
  • package?com.test;??
  • ??
  • import?android.app.Activity;??
  • import?android.content.Context;??
  • import?android.os.Bundle;??
  • import?android.view.LayoutInflater;??
  • import?android.view.View;??
  • import?android.view.ViewGroup;??
  • import?android.widget.AdapterView;??
  • import?android.widget.BaseAdapter;??
  • import?android.widget.GridView;??
  • import?android.widget.ImageView;??
  • import?android.widget.TextView;??
  • import?android.widget.Toast;??
  • import?android.widget.AdapterView.OnItemClickListener;??
  • ??
  • public?class?GridViewActivity?extends?Activity?{??
  • ??
  • ????//存放各功能圖片??
  • ????private?Integer[]?mFunctionPics?=?{R.drawable.mobilesecurity,R.drawable.infosecurity,??
  • ????????????R.drawable.no_interrupt,R.drawable.bianjiejieting,R.drawable.xiaomishu??
  • ????????????,R.drawable.sms_send_attime,R.drawable.yule,R.drawable.setting};??
  • ????//存放各功能的名稱??
  • ????private?Integer[]?mFunctionName?=?{R.string.phone_tools_box_name1,??
  • ????????????R.string.phone_tools_box_name2,R.string.phone_tools_box_name3,??
  • ????????????R.string.phone_tools_box_name4,R.string.phone_tools_box_name5,??
  • ????????????R.string.phone_tools_box_name6,R.string.phone_tools_box_name7,??
  • ????????????R.string.phone_tools_box_name8};??
  • ????@Override??
  • ????protected?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.gridview_main);??
  • ??????????
  • ????????GridView?girdview?=?(GridView)?this.findViewById(R.id.girdview);??
  • ????????girdview.setAdapter(new?ImageAdapter(this));??
  • ????????girdview.setOnItemClickListener(new?OnItemClickListener()?{??
  • ????????????@Override??
  • ????????????public?void?onItemClick(AdapterView<?>?parent,?View?view,??
  • ????????????????????int?position,?long?id)?{??
  • ????????????????Toast.makeText(GridViewActivity.this,?"圖片ID:"+mFunctionPics[position],1).show();??
  • ????????????}??
  • ????????});??
  • ??????????
  • ????}??
  • ??????
  • ????public?class?ImageAdapter?extends?BaseAdapter{??
  • ??
  • ????????private?Context?mContext;??
  • ????????private?LayoutInflater?inflater;??
  • ????????private?class?GirdTemp{??
  • ????????????ImageView?phone_function_pic;??
  • ????????????TextView?phone_function_name;??
  • ????????}??
  • ????????public?ImageAdapter(Context?c){??
  • ????????????mContext?=?c;??
  • ????????????inflater?=?(LayoutInflater)?mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);??
  • ????????}??
  • ????????@Override??
  • ????????public?int?getCount()?{??
  • ????????????return?mFunctionPics.length;??
  • ????????}??
  • ??
  • ????????@Override??
  • ????????public?Object?getItem(int?position)?{??
  • ????????????return?position;??
  • ????????}??
  • ??
  • ????????@Override??
  • ????????public?long?getItemId(int?position)?{??
  • ????????????return?position;??
  • ????????}??
  • ??
  • ????????@Override??
  • ????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{??
  • ????????????GirdTemp?temp;??
  • ????????????if(convertView?==?null){??
  • ????????????????convertView?=?inflater.inflate(R.layout.gridview_item,?null);??
  • ????????????????temp?=?new?GirdTemp();??
  • ????????????????temp.phone_function_pic?=?(ImageView)?convertView.findViewById(R.id.function_view);??
  • ????????????????temp.phone_function_name?=?(TextView)?convertView.findViewById(R.id.function_name);??
  • ????????????????convertView.setTag(holder);??
  • ????????????}else{??
  • ????????????????temp?=?(GirdHolder)?convertView.getTag();??
  • ????????????}??
  • ????????????temp.phone_function_pic.setImageResource(mFunctionPics[position]);??
  • ????????????temp.phone_function_name.setText(mFunctionName[position]);??
  • ????????????return?convertView;??
  • ????????}??
  • ??????????
  • ????}??
  • ??
  • }??
  • girdview_main.xml代碼如下:

  • <?xml?version="1.0"?encoding="utf-8"?>??
  • <GridView?xmlns:android="http://schemas.android.com/apk/res/android"???
  • ????android:id="@+id/gridview"??
  • ????android:layout_width="fill_parent"???
  • ????android:layout_height="fill_parent"??
  • ????android:numColumns="auto_fit"? //自動適應多少行
  • ????android:verticalSpacing="20dp"? //兩行之間的距離
  • ????android:horizontalSpacing="20dp"? //兩列之間的距離
  • ????android:gravity="center"??
  • />?

  • girdview_item.xml源碼:




  • <?xml?version="1.0"?encoding="utf-8"?>??
  • <RelativeLayout???
  • ????????xmlns:android="http://schemas.android.com/apk/res/android"???
  • ?android:layout_height="wrap_content"?
  • android:layout_width="fill_parent"?
  • ?????????<ImageView>???
  • ? ? ? ? ? ? ? ??android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:id="@+id/function_view"
  • android:layout_centerHorizontal="true"
  • </ImageView>?
  • ?????????<TextView???
  • ???????????????android:layout_width="wrap_content"???
  • ???????????????android:layout_below="@+id/function_view"???
  • ???????????????android:layout_height="wrap_content"? ?
  • ???????????????android:layout_centerHorizontal="true"???
  • ???????????????android:id="@+id/function_name">??
  • ?????????</TextView>??
  • </RelativeLayout>??
  • ?2.跟ListView類似的數據綁定方式

    ?

    具體查看hellogv的這篇博客:http://blog.csdn.net/hellogv/article/details/4567095


    總結

    以上是生活随笔為你收集整理的Android中用GridView实现九宫格的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。