2014-03-24 41 views
1

滾動後呈現空白,我用從android-gpuimage庫用於顯示圖像(經過濾的應用上他們)在我ListViewGPUImageView組件。
GPUImageView ListView中的Android

圖像在我的ListView中第一次使用過濾器進行完美加載,但是當我向下滾動ListView時,所有滾動單元格都顯示爲空白。

這裏是我的自定義BaseAdaptergetView(...)方法的代碼:

@Override 
public View getView(int position, View convert_view, ViewGroup arg2) { 
    // TODO Auto-generated method stub 

    if(convert_view == null) 
    { 
     if(inflater == null) 
      inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     convert_view = inflater.inflate(R.layout.filter_item , null); 

    } 

    TextView thumb_file_name_tv = (TextView) convert_view.findViewById(R.id.filter_item_thumb_tv); 

    GPUImageView thumb_giv = (GPUImageView) convert_view.findViewById(R.id.filter_item_thumb_giv); 

    Log.d(TAG, "Image Uri = "+imageUri); 

    thumb_file_name_tv.setText(""+filterNames.get(position).toString().trim()); 

    thumb_giv.setFilter(new GPUImageSepiaFilter()); 

    thumb_giv.setImage(imageUri); // this loads image on the current thread, should be run in a thread 

    thumb_giv.requestRender(); 

    return convert_view; 

} 

請告訴我什麼,我做錯了什麼?
任何幫助,高度讚賞。

+0

任何線索,我在做什麼錯在這裏? –

回答

0

自從我使用該庫以來已經有一段時間了,但是從我記憶中來看,如果在視圖中更改圖像,則需要在設置新圖像之前調用deleteImage()
嘗試調用該方法之前致電setImage()您可能需要檢查視圖是否存在圖像,然後才能致電deleteImage()或者它可能會引發錯誤。

編輯:
以下方法添加到GPUImageView.java類Android的gpuImage庫:

public void deleteImage() 
{ 
mGPUImage.deleteImage(); 
} 
+0

感謝您的回覆,我正在嘗試此解決方案。 –

+0

在GPUImageView中沒有'deleteImage()'這樣的方法,但是有一個類似的方法是'deleteDrawingCache()',使用它後''GPUImageView'總是呈現Blank。 –

+1

對不起,我自己添加了一個,忘記提及了。在GPUImageView類中,添加以下方法:public void deleteImage() { \t mGPUImage.deleteImage(); } – KennyC