Gallery ImageAdapter convertView is always null

前端 未结 3 1219
囚心锁ツ
囚心锁ツ 2021-02-02 15:57

I am using a Gallery with an ImageAdapter to load it with ImageViews that pull images out of my resources. My problem is that the convertView that gets passed to the getView() m

3条回答
  •  庸人自扰
    2021-02-02 16:48

    I do not have experience with Gallery widget, but I'am using a lot ListView with images. According to your problem, and link to Google issue, they still haven't fix this problem.

    So, there is solutio with nice library (and examples within it), which solve cache/ajax problems, and much more.

    Link to library

    or, more concrete, link to image examples

    If you download their examples, you will find how they implemented gallery with Gallery widget, using their AQuery utility class in

    com.androidquery.test.image.ImageLoadingGalleryActivity class.

    Snippet from code:

        final List entries;// here only to show what enteries are...
    
        listAq = new AQuery(this); //define as Action class member, here only to show what it is
    
        ArrayAdapter aa = new ArrayAdapter(this, R.layout.gallery_item, entries){
    
            public View getView(int position, View convertView, ViewGroup parent) {
    
                if(convertView == null){
                    convertView = getLayoutInflater().inflate(R.layout.gallery_item, parent, false);
                }
    
                Photo photo = getItem(position);
    
                AQuery aq = listAq.recycle(convertView);
    
                aq.id(R.id.name).text(photo.title);
    
                String tbUrl = photo.tb;
    
                if(!aq.shouldDelay(position, convertView, parent, tbUrl)){
                    aq.id(R.id.tb).image(tbUrl);
                    aq.id(R.id.text).text(photo.title).gone();
                }else{
                    aq.id(R.id.tb).clear();
                    aq.id(R.id.text).text(photo.title).visible();
                }
    
    
                return convertView;
    
            }
    
    
        };
    
        aq.id(R.id.gallery).adapter(aa);
    

    Where Photo is just POJO object (fetched from remote):

    class Photo {
        String tb;
        String url;
        String title;
        String author;
    }
    

    R.id.gallery refers to

     
    

    And R.layout.gallery_item refers to:

        
    
            
    
            
    
            
    
        
    

    Hope you'll find this library useful in solving your problem.

提交回复
热议问题