zoukankan      html  css  js  c++  java
  • 基于BaseAdapter的GridView设置ImageView大小

    基于BaseAdapter的GridView设置ImageView大小

      网上找了好多,都是基于SimpleAdapter的,本身在Item.xml中就对ImageView设置了id,而基于BaseAdapter的几乎没有,搞了好长时间一直有问题,这里参考网友的一篇文章(http://www.cnblogs.com/over140/archive/2010/09/14/1825649.html),成功实现了这一功能。

     public View getView(int position, View subView, ViewGroup viewGroup) {
                ImageView imageView;
                if(subView ==null)
                {
                    imageView = new ImageView(GridViewActivity.this);
                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    
                    //设置ImageView高度
                    GridView.LayoutParams params = new GridView.LayoutParams(LayoutParams.MATCH_PARENT,screenWidth/4);   //(1)
                    imageView.setLayoutParams(params);
                }else{
                    imageView = (ImageView) subView;
                }
    
                Bitmap bm = BitmapFactory.decodeFile("sdcard/PictureTrans/"+MainActivity.username+"/thumbnails/"+MainActivity.localImgList[position]);
                imageView.setImageBitmap(bm);
                return imageView;
            }
    

      
      这里一定要注意语句(1)中为GridView.LayoutParams。否则会报错。

      原因:LayoutParams导包时导的是android.view.ViewGroup.LayoutParams包;如果直接用

    LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,screenWidth/4); 
    

      则在获取LayoutParams时内部是将这个属性转到android.widget.AbsListView.LayoutParams,也就是这里setLayoutParams弄错了,故这里需要使用GridView.LayoutParam。

  • 相关阅读:
    IO库 8.5
    IO库 8.4
    标准模板库——IO库
    IO库 8.3
    IO库 8.2
    IO库 8.1
    CF 599D Spongebob and Squares(数学)
    Django入门学习(一)
    hdu 5733
    uva 11210
  • 原文地址:https://www.cnblogs.com/silentteen/p/6088731.html
Copyright © 2011-2022 走看看