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(安卓)Camera对焦相关
  2. android中的EditView控件
  3. android通过USB的MTP模式下,禁止用户在根目录有任何操作(重命名 删
  4. Android仿QQ消息列表ListView滑动删除效果
  5. Android(安卓)Camera调用流程
  6. Android中如何查看so崩溃的log
  7. Android(安卓)无线启动过程分析 无线启动过程分析
  8. 5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间lo
  9. 箭头函数的基础使用

随机推荐

  1. [置顶] Android(安卓)ViewPager+Fragment
  2. Android--sharepreference总结
  3. Android(安卓)sdcard文件读写操作
  4. 解决Android模拟器打不开的问题!...
  5. Android学习笔记:androidmanifest.xml 高
  6. Android(安卓)tips2
  7. 多方向抽屉效果
  8. MyCms 自媒体 CMS 系统 v3.1.0,新增商城接
  9. 【北亚数据恢复】IBM DS系列存储服务器硬
  10. Circle Linux镜像在阿里云镜像站首发上线