2015-02-05 39 views
0

我有一個ListView包含大圖像 - 讓我們說它充滿了手機的屏幕截圖。當我滾動瀏覽ListView時,每當新的View變爲可見時 - 就我所知,由於設置圖像而導致呃逆。ImageView打嗝時設置大圖

我認爲這可能是由於Bitmap編組所以我試圖在AsyncTask創建從資源的Bitmap,然後將其設置爲UI線程上ImageView的源位圖,還存在着明顯的打嗝和下降滾動我的ListView中的幀。

看來,這不是一個問題時,使用較小的圖像,即使他們是爲了適應整個ImageView。不幸的是,我試圖顯示的圖像基本上是截圖,因此幾乎與手機屏幕一樣大。

在我開始探索ImageView的膽量之前,有什麼辦法可以避免這種情況?很顯然,UI線程上的某些事情取決於圖像的大小,但可以避免/洗掉另一個線程,否則優化?

+0

您可以使用像畢加索這樣的圖像加載庫來加載圖像,它們是UI優化的,並且不會由於圖像尺寸較大而崩潰。 –

+0

我的問題不是崩潰,也不是下載圖像。所有這一切工作正常。這一切都與Android的ImageView有關。圖像也不從服務器加載。爲了這個問題的目的,想象他們都是應用程序中的資源。 – Catherine

+0

那麼你的問題是什麼?如果沒有問題,那麼爲什麼這個問題? –

回答

0

嘗試設置ImageView源代碼post()在您的自定義列表視圖適配器類中使用Handler類的方法。

例如

new Handler().post(new Runnable() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 

     imageView.setImageResource(R.drawable.demoImage); 
    } 
}); 

希望這會有所幫助。

+0

這不能解決問題。問題是,當我設置圖像資源時,UI放緩。這並不是說我無法在UI線程上設置它。我沒有問題在UI線程上設置它。 – Catherine

+0

使用處理程序後處理方法,它將有助於更順暢地轉換listview,因爲每個圖像都將加載到單獨的線程上。我有同樣的問題在列表視圖中加載圖像,我結束了這種方式。此外,您還可以使用https://github.com/nostra13/Android-Universal-Image-Loader庫進行圖像加載,效果很好。 –

+0

處理程序post方法在創建Handler的任何線程上執行其操作。 – Catherine