Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来 应用的比较多的就是组合图片显示 下面我就详细讲一个例子

首先写一个类继承BaseAdapter

[java]view plaincopy

  1. publicclassImageListextendsBaseAdapter{

  2. publicBitmap[]image;

  3. Activityactivity;

  4. //construct

  5. publicImageList(Activitya){

  6. activity=a;

  7. }

  8. @Override

  9. publicintgetCount(){

  10. //TODOAuto-generatedmethodstub

  11. returnimage.length;

  12. }

  13. @Override

  14. publicObjectgetItem(intposition){

  15. //TODOAuto-generatedmethodstub

  16. returnimage[position];

  17. }

  18. @Override

  19. publiclonggetItemId(intposition){

  20. //TODOAuto-generatedmethodstub

  21. returnposition;

  22. }

  23. publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

  24. //TODOAuto-generatedmethodstub

  25. ImageViewimageView;

  26. if(convertView==null){

  27. imageView=newImageView(activity);

  28. imageView.setLayoutParams(newGridView.LayoutParams(50,50));//设置ImageView宽高

  29. imageView.setAdjustViewBounds(false);

  30. imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

  31. }else{

  32. imageView=(ImageView)convertView;

  33. }

  34. imageView.setImageBitmap(image[position]);

  35. returnimageView;

  36. }

  37. publicstaticBitmapdrawableToBitmap(Drawabledrawable){

  38. Bitmapbitmap=Bitmap

  39. .createBitmap(

  40. drawable.getIntrinsicWidth(),

  41. drawable.getIntrinsicHeight(),

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

  43. :Bitmap.Config.RGB_565);

  44. Canvascanvas=newCanvas(bitmap);

  45. drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());

  46. drawable.draw(canvas);

  47. returnbitmap;

  48. }

  49. }

然后在主程序里

[c-sharp] view plaincopy

  1. finalGridViewgv=(GridView)findViewById(R.id.grid);

  2. ImageListadapter=newImageList(available.this);

  3. Resourcesres=getResources();

  4. Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.logo);

  5. adapter.image=newBitmap[20];

  6. for(inti=0;i<=19;i++)

  7. {

  8. adapter.image[i]=bmp;

  9. }

  10. gv.setAdapter(adapter);

  11. gv.setOnItemClickListener(newOnItemClickListener(){

  12. @Override

  13. publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,

  14. intarg2,longarg3){

  15. //TODOAuto-generatedmethodstub

  16. Log.i("phb",arg2+"");

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

  18. Intenti=newIntent(available.this,com.mobile.links.shop.mycx.shopcart.class);

  19. startActivity(i);

  20. }

  21. });

  22. gv.setOnItemSelectedListener(newOnItemSelectedListener(){

  23. @Override

  24. publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,

  25. intarg2,longarg3){

  26. //TODOAuto-generatedmethodstub

  27. Log.i("selected",arg2+"");

  28. tv.setText(arg2+":detail");

  29. }

  30. @Override

  31. publicvoidonNothingSelected(AdapterView<?>arg0){

  32. //TODOAuto-generatedmethodstub

  33. }

  34. });

其中onClick函数是判断被点击

而onSelect函数是判断被选中 也就是获得焦点的imageview

这样我们就可以基于gridview来做一些应用了。

构建gridview的xml代码

[c-sharp] view plaincopy

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <LinearLayout

  3. android:id="@+id/relativelayout"

  4. android:layout_width="fill_parent"

  5. android:layout_height="fill_parent"

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

  7. android:orientation="vertical"

  8. >

  9. <GridViewandroid:id="@+id/availgrid"

  10. android:layout_width="fill_parent"

  11. android:layout_height="wrap_content"

  12. android:numColumns="4"

  13. android:verticalSpacing="30dp"

  14. android:layout_centerHorizontal="true"

  15. />

  16. </LinearLayout>


更多相关文章

  1. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态
  2. Android中切换屏幕方向时Activity生命周期函数执行情况分析
  3. android之网格布局GridLayout
  4. Android 加载图片文件 函数
  5. Android为Menu添加item及响应函数
  6. android之检查service运行状态函数
  7. Android Studio 基础 之 一键快速实现一个类的 构造函数、getter
  8. Android Studio如何提示函数用法
  9. Android Studio怎样提示函数使用方法

随机推荐

  1. Android应用程序结构
  2. Android数据储存
  3. Android中shape的使用
  4. Android之——手机黑名单的实现
  5. Android四大视图动画图文详解
  6. [置顶] Android(安卓)FrameWork Service
  7. Android(安卓)ListView 去除底色、选中色
  8. android 2048游戏、kotlin应用、跑马灯、
  9. Android(安卓)Studio导入第三方类库的方
  10. android面试知识点详情