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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android GridView的使用方法

發布時間:2025/1/21 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android GridView的使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Android的GridView控件用于把一系列的空間組織成一個二維的網格顯示出來 應用的比較多的就是組合圖片顯示 下面我就詳細講一個例子

?

?

首先寫一個類繼承BaseAdapter

[java]?view plaincopy

  • public?class?ImageList?extends?BaseAdapter?{??

  • ??????

  • ????????public?Bitmap[]?image;??

  • ????????Activity?activity;??

  • ??????????

  • ????????//?construct??

  • ????????public?ImageList(Activity?a)?{??

  • ????????????activity?=?a;??

  • ????????}??

  • ????????@Override??

  • ????????public?int?getCount()?{??

  • ????????????//?TODO?Auto-generated?method?stub??

  • ????????????return?image.length;??

  • ????????}??

  • ????????@Override??

  • ????????public?Object?getItem(int?position)?{??

  • ????????????//?TODO?Auto-generated?method?stub??

  • ????????????return?image[position];??

  • ????????}??

  • ????????@Override??

  • ????????public?long?getItemId(int?position)?{??

  • ????????????//?TODO?Auto-generated?method?stub??

  • ????????????return?position;??

  • ????????}??

  • ????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{??

  • ????????????//?TODO?Auto-generated?method?stub??

  • ????????????ImageView?imageView;??

  • ????????????if?(convertView?==?null)?{??

  • ????????????????imageView?=?new?ImageView(activity);??

  • ????????????????imageView.setLayoutParams(new?GridView.LayoutParams(50,?50));//?設置ImageView寬高??

  • ????????????????imageView.setAdjustViewBounds(false);??

  • ????????????????imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);??

  • ??????????????????

  • ????????????}?else?{??

  • ????????????????imageView?=?(ImageView)?convertView;??

  • ????????????}??

  • ????????????imageView.setImageBitmap(image[position]);??

  • ??????????????

  • ????????????return?imageView;??

  • ????????}??

  • ????????public?static?Bitmap?drawableToBitmap(Drawable?drawable)?{????

  • ????????????????

  • ????????????Bitmap?bitmap?=?Bitmap????

  • ????????????????????????????.createBitmap(????

  • ????????????????????????????????????????????drawable.getIntrinsicWidth(),????

  • ????????????????????????????????????????????drawable.getIntrinsicHeight(),????

  • ????????????????????????????????????????????drawable.getOpacity()?!=?PixelFormat.OPAQUE???Bitmap.Config.ARGB_8888????

  • ????????????????????????????????????????????????????????????:?Bitmap.Config.RGB_565);????

  • ????????????Canvas?canvas?=?new?Canvas(bitmap);????

  • ????????????drawable.setBounds(0,?0,?drawable.getIntrinsicWidth(),?drawable.getIntrinsicHeight());????

  • ????????????drawable.draw(canvas);????

  • ????????????return?bitmap;????

  • ????}????

  • ????}??

  • ?

    ?

    ?

    然后在主程序里

    ?

    ?

    ?

    ?

    ?

    [c-sharp] view plaincopy

  • final?GridView?gv?=?(GridView)?findViewById(R.id.grid);??

  • ????????????????ImageList?adapter?=?new?ImageList(available.this);??

  • ????????????????Resources?res=getResources();????

  • ????????????????Bitmap?bmp=BitmapFactory.decodeResource(res,?R.drawable.logo);????

  • ????????????????adapter.image=new?Bitmap[20];??

  • ????????????????for(int?i=0;i<=19;i++)??

  • ????????????????{??

  • ????????????????????adapter.image[i]=bmp;??

  • ????????????????}??

  • gv.setAdapter(adapter);??

  • ????????????????gv.setOnItemClickListener(new?OnItemClickListener()?{??

  • ????????????????????@Override??

  • ????????????????????public?void?onItemClick(AdapterView<?>?arg0,?View?arg1,??

  • ????????????????????????????int?arg2,?long?arg3)?{??

  • ????????????????????????//?TODO?Auto-generated?method?stub??

  • ????????????????????????Log.i("phb",?arg2?+?"");??

  • ????????????????????????Log.i("phbsel",gv.isFocused()+"");??

  • ????????????????????????Intent?i=new?Intent(available.this,?com.mobile.links.shop.mycx.shopcart.class);??

  • ????????????????????????startActivity(i);??

  • ????????????????????}??

  • ????????????????});??

  • ???????????????gv.setOnItemSelectedListener(new?OnItemSelectedListener(){??

  • ????????????????@Override??

  • ????????????????public?void?onItemSelected(AdapterView<?>?arg0,?View?arg1,??

  • ????????????????????????int?arg2,?long?arg3)?{??

  • ????????????????????//?TODO?Auto-generated?method?stub??

  • ????????????????????Log.i("selected",arg2+"");??

  • ????????????????????tv.setText(arg2+":detail");??

  • ????????????????}??

  • ????????????????@Override??

  • ????????????????public?void?onNothingSelected(AdapterView<?>?arg0)?{??

  • ????????????????????//?TODO?Auto-generated?method?stub??

  • ??????????????????????

  • ????????????????}??

  • ?????????????????????

  • ???????????????});??

  • ??????????????????

  • ?

    其中onClick函數是判斷被點擊

    而onSelect函數是判斷被選中 也就是獲得焦點的imageview

    ?

    ?

    這樣我們就可以基于gridview來做一些應用了。

    ?

    構建gridview的xml代碼

    ?

    [c-sharp] view plaincopy

  • <?xml?version="1.0"?encoding="utf-8"?>??

  • <LinearLayout??

  • android:id="@+id/relativelayout"??

  • android:layout_width="fill_parent"??

  • android:layout_height="fill_parent"??

  • xmlns:android="http://schemas.android.com/apk/res/android"??

  • android:orientation="vertical"??

  • >??

  • <GridView?android:id="@+id/availgrid"???

  • ??android:layout_width="fill_parent"???

  • ??android:layout_height="wrap_content"???

  • ??android:numColumns="4"???

  • ??android:verticalSpacing="30dp"???

  • ??android:layout_centerHorizontal?=?"true"??

  • ????

  • ??/>???

  • ???

  • ???

  • </LinearLayout> ?


  • 轉載于:https://my.oschina.net/1590538xiaokai/blog/338724

    總結

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

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