2010-08-16 24 views
1

我有一個畫廊,當一個圖像被選中時,我想開始新的線程(用於加載其他圖像)。但是我不想在畫廊滾動的時候這樣做。我如何知道畫廊的狀態以及它是否仍在滾動?Android如何知道畫廊是否滾動?

我不能用「setCallbackDuringFling(假)」,因爲我有一個具有滾動過程中要更新的圖像下一個TextView ...

謝謝! Marc

回答

3

我想你可以用setCallbackDuringFling方法去。根據我的理解,如果將其設置爲false,則在計算投擲時應該可以選擇一個項目。

+0

Sephy您好,感謝!問題是我在圖像下有一個Textview,它在滾動時必須更新。如果我使用setCallbackDringringFling,文本不會更新,但我不想更新它=) – marc 2010-08-16 07:45:45

+0

你在TextView中顯示什麼?爲什麼需要在滾動時更新它? – Sephy 2010-08-16 10:20:42

+0

我顯示圖片的名稱及其位置(在onItemSelected方法中),以便用戶知道他在哪裏,並且如果需要可以繼續滾動(無需等待直到停止顯示位置和名稱) – marc 2010-08-16 12:37:18

0

使用從onItemSelectedListener調用的處理程序,該處理程序更新最後一次選擇項目的時間(每當最前面的項目發生更改時,此偵聽器被觸發),並使用超時值確定滾動何時結束以確定滾動是否爲仍在發生。

但是,我有和AMP完全相同的東西...我有一個FrameLayout有一個Gallery和2個textviews來顯示最重要的選定的藝術家和專輯...我使用onItemSelectedListener更新這些TextViews,它工作正常。如果在像我這樣的FrameLayout中有TextView,則必須使用bringChildToFront讓它們在Gallery上顯示(最後添加Gallery)。

就延遲加載(我假設這是你在做什麼)。有幾個關於如何做到這一點的偉大教程。

http://ballardhack.wordpress.com/2010/04/05/loading-remote-images-in-a-listview-on-android/ http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html

+0

謝謝!我不得不做一些測試,以找到正確的超時值,但它似乎工作!順便說一句好的應用程序。你如何在圖庫中加載圖像? =) – marc 2010-08-17 16:42:10

+0

我寫了一個表示圖像的Obervable對象,並將ImageView實現爲Observer。如果圖像不存在於緩存文件夾中,我將一個默認圖像放在imageview .setBackgroundDrawable中,並啓動一個線程來處理圖像...當線程完成時,我發送一個更新通知給imageview並重新載入圖像對象並設置背景圖像。我將圖像對象存儲在弱引用hashmap中,並將imageview標籤設置爲hashmap中對象的索引...這就是imageview知道它引用了哪個對象的方式。 – androidworkz 2010-08-17 18:18:11

+0

和AMP仍然是一項工作正在進行中,但我很欣賞評論。 :) – androidworkz 2010-08-17 18:22:06