[转帖]Android系列教程之九:GridView组件的使用_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3397 | 回复: 1   主题: [转帖]Android系列教程之九:GridView组件的使用        下一篇 
jie.liang
注册用户
等级:少校
经验:1003
发帖:77
精华:0
注册:2013-10-11
状态:离线
发送短消息息给jie.liang 加好友    发送短消息息给jie.liang 发消息
发表于: IP:您无权察看 2013-10-17 15:46:46 | [全部帖] [楼主帖] 楼主

本文版权归飞雪无情 所有,转载请注明出处, 永久链接: http://flysnow.iteye.com/blog/890171

我新建了一个Android的技术交流群,群号为86686524120059404,感兴趣的可以申请加入,大家一块学习。

  1. 新建一个HelloGridView的工程
  2. 修改main.xml代码如下:Xml代码 
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <GridView  
    3.   xmlns:android="http://schemas.android.com/apk/res/android"  
    4.   android:id="@+id/gridview"  
    5. android:layout_width="fill_parent"
    6. android:layout_height="fill_parent"
    7. android:columnWidth="90dp"
    8. android:numColumns="auto_fit"
    9. android:horizontalSpacing="10dp"
    10. android:verticalSpacing="10dp"
    11. android:stretchMode="columnWidth"
    12. android:gravity="center">
    13. </GridView>



 很简单,就是一个GridView。设置列宽为90dp,这样当我们的numColumns设置为auto_fit时,Android就会自动计算我们手机屏幕的大小以决定每一行展示几个元素。这是很方便。android:horizontalSpacing定义列之间的间隔,android:verticalSpacing定义行之间的间隔。android:stretchMode设置为columnWidth是意味着根据列宽自动缩放。

修改我们Activity HelloGridView如下: 
Java代码 
北京联动北方科技有限公司
北京联动北方科技有限公司北京联动北方科技有限公司

  1. /** 
  2.  * 
  3.  * @author 飞雪无情 
  4.  * @since 2011-1-20 
  5.  */ 
  6. public class HelloGridView extends Activity { 
  7.        /** Called when the activity is first created. */ 
  8.        @Override 
  9.        protected void onCreate(Bundle savedInstanceState) { 
  10.              super.onCreate(savedInstanceState); 
  11.              setContentView(R.layout.main); 
  12.              GridView gridView=(GridView)findViewById(R.id.gridview); 
  13.              gridView.setAdapter(new ImageAdapter(this)); 
  14.              //单击GridView元素的响应 
  15.              gridView.setOnItemClickListener(new OnItemClickListener() { 
  16.                   
  17.                   @Override
  18.                    public void onItemClick(AdapterView<?> parent, View view, 
  19.                    int position, long id) { 
  20.                          //弹出单击的GridView元素的位置 
  21.                          Toast.makeText(HelloGridView.this,mThumbIds[position], Toast.LENGTH_SHORT).show(); 
  22.                    } 
  23.              }); 
  24.        } 
  25.        private class ImageAdapter extends BaseAdapter{ 
  26.              private Context mContext; 
  27.             
  28.              public ImageAdapter(Context context) { 
  29.                    this.mContext=context; 
  30.              } 
  31.             
  32.             @Override
  33.              public int getCount() { 
  34.                    return mThumbIds.length; 
  35.              } 
  36.             
  37.             @Override
  38.              public Object getItem(int position) { 
  39.                    return mThumbIds[position]; 
  40.              } 
  41.             
  42.             @Override
  43.              public long getItemId(int position) { 
  44.                    // TODO Auto-generated method stub 
  45.                    return 0; 
  46.              } 
  47.             
  48.             @Override
  49.              public View getView(int position, View convertView, ViewGroup parent) { 
  50.                    //定义一个ImageView,显示在GridView里 
  51.                    ImageView imageView; 
  52.                    if(convertView==null){ 
  53.                          imageView=new ImageView(mContext); 
  54.                          imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
  55.                          imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
  56.                          imageView.setPadding(8, 8, 8, 8); 
  57.                    }else{ 
  58.                    imageView = (ImageView) convertView; 
  59.              } 
  60.              imageView.setImageResource(mThumbIds[position]); 
  61.              return imageView; 
  62.        } 
  63.       
  64.       
  65.       
  66.  } 
  67.  //展示图片 
  68.  private Integer[] mThumbIds = { 
  69.        R.drawable.sample_2, R.drawable.sample_3, 
  70.        R.drawable.sample_4, R.drawable.sample_5, 
  71.        R.drawable.sample_6, R.drawable.sample_7, 
  72.        R.drawable.sample_0, R.drawable.sample_1, 
  73.        R.drawable.sample_2, R.drawable.sample_3, 
  74.        R.drawable.sample_4, R.drawable.sample_5, 
  75.        R.drawable.sample_6, R.drawable.sample_7, 
  76.        R.drawable.sample_0, R.drawable.sample_1, 
  77.        R.drawable.sample_2, R.drawable.sample_3, 
  78.        R.drawable.sample_4, R.drawable.sample_5, 
  79.        R.drawable.sample_6, R.drawable.sample_7 
  80.  }; 



 这里我们也是采用的自定义Adapter,可以上一节的自定义Adapter讲解。展示了一些图片,然后点击一个图片的时候会显示这个图片所在的位置。

运行程序,效果图如下:




赞(0)    操作        顶端 
jie.liang
注册用户
等级:少校
经验:1003
发帖:77
精华:0
注册:2013-10-11
状态:离线
发送短消息息给jie.liang 加好友    发送短消息息给jie.liang 发消息
发表于: IP:您无权察看 2013-10-18 9:08:55 | [全部帖] [楼主帖] 2  楼

hahahah



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论