2011-09-30 43 views
4

我已經用多個圖像編程了一個可縮放圖庫。Android圖庫 - 在滾動停止後在ImageView中替換位圖

  • 圖像可以放大。
  • 縮放圖像可以被拖動。
  • 如果圖像沒有放大,圖庫可以滾動。

佈局由一個TextView(畫廊的名字)和Gallery本身LinearLayout的。

在畫廊的項目由包含在它的ImageView(我讀我需要的FrameLayout用於縮放)和TextView一個FrameLayout來顯示圖像的縮放狀態RelativeLayout的。

我已經使用自定義View.OnTouchListener來實現縮放。

現在我試圖替換圖像ImageView後的畫廊已經停止了高分辨率畫面滾動,使用戶可以放大更好/更。

我做了這個與OnItemSelectedListenersetCallbackDuringFling爲false。

即使你快速地扔掉屏幕,這個工作正常。
但是,如果你把你的手指上顯示和移動它慢慢到邊緣時,OnItemSelectedListener是之前解僱下一個項目達到了中心和滾動動畫停止。相反,畫廊跳躍,就像它失去了聯繫聯繫,並立即在畫廊中心的下一個項目。緩慢移動手指時,同一個項目上也會多次調用OnItemSelectedListener(我通過保存最後選定項目的位置來避免此問題)。

所以(長篇故事短片)我正在尋找一個回調/監聽器來調用Gallery的「滾動/對齊網格」效果。我也試過AnimationListener,但是當我呼叫getAnimation時,畫廊會返回null。

我絕望在這裏......任何人都可以幫忙嗎?

回答

1

問題解決了:現在我使用的是android.support.v4.view.ViewPager與自定義回調在OnPageChangeListener

  • onPageSelected
  • onPageScrollStateChanged
  • onPageScrolled
0

我建議對您的方法稍作修改。對於您的圖庫,覆蓋onScroll(MotionEvent, MotionEvent, float, float)onFling(MotionEvent, MotionEvent, float, float)讓他們返回他們的超級但在MotionEvent.ACTION_DOWN || MotionEvent.ACTION_UP將移動標誌設置爲true ||假分別。

現在在getView(int,View,ViewGroup)方法的BaseAdapter中,當您返回圖像視圖時,如果移動標誌爲true,則返回低分辨率ImageView,否則返回高分辨率。

+0

感謝您的小費,但' getView(...)'只要下一個項目變爲可見(即滾動)就會被調用。此外,我已經試圖讓手勢依賴於圖像。但是,這也不適合我,因爲如果您有MotionEvent.ACTION_UP,圖庫可能仍然在滾動以居中當前項目。我想在**項目居中後替換圖片**。 – Christian

相關問題