zoukankan      html  css  js  c++  java
  • baseadapter

     最近做一个图片浏览器,用BaseAdapter用到想和它分手(其实还好啦,挺好用的,好扩展!),核心应该是getView方法的重写吧,主要有几点收获吧,在这里说说~说说~:

        [代码]java代码:

    01 @Override
    02     public View getView(int position, View convertView, ViewGroup parent)
    03     {
    04         ImageView imageView;
    05         Bitmap bitmap = getItem(position);
    06  
    07         if (convertView == null)
    08         {
    09             imageView = new ImageView(getContext());
    10         }
    11         else
    12         {
    13             imageView = (ImageView) convertView;
    14         }
    15  
    16         imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    17         imageView.setImageBitmap(bitmap);
    18         return imageView;
    19     }

      1、when getView 被调用:              

                    ①初始化时,肯定会调用的,不然啥都看不见。

                    ②子控件从消失到重新出现,调用~~

                    ③调用notifyDataSetChanged()后,会调用~~

                    ④欢迎补充……

        2、getView 方法中 convertView的脾气:

                    ①缓存,不错!可以节省资源(上面的代码有给出)

                    ②缓存,shit!!!一定要搞清楚这个是哪个子控件留下的缓存,从实践的坎坷过程来看,应该是最后一个消失的子控件的,不过不是很确定,但是肯定不是原来这个控件的缓存,如果是的话就不用加 imageView.setImageBitmap(bitmap) 这一句了。也许大家不会因为这个问题而出现什么狗血的事~可是,当你的View是一个自定义的且较为复杂的控件时,就一定要做好恢复工作了~比如重新设置它的图片(这个简单,关键时注意复杂的),我被这个坑了两天……
            
          写完,突然觉得问题有点傻……可能也就只有我被坑过吧
  • 相关阅读:
    linux安装git
    安装tidb数据库
    docker的简单操作和端口映射
    zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)
    zabbix简单的操作(添加主机)
    LINQ 函数的实战演练测试
    C#基础:LINQ 查询函数整理
    C#中的LINQ
    C#高级编程笔记 2016年10月26日 MVC入门 Controller
    委托、Lambda表达式和事件
  • 原文地址:https://www.cnblogs.com/appzhang/p/2673075.html
Copyright © 2011-2022 走看看