Android图库 - 在滚动停止后在ImageView中替换位图
我已经用多个图像编程了一个可缩放图库。Android图库 - 在滚动停止后在ImageView中替换位图
- 图像可以放大。
- 缩放图像可以被拖动。
- 如果图像没有放大,图库可以滚动。
布局由一个TextView
(画廊的名字)和Gallery
本身LinearLayout
的。
在画廊的项目由包含在它的ImageView
(我读我需要的FrameLayout用于缩放)和TextView
一个FrameLayout
来显示图像的缩放状态RelativeLayout
的。
我已经使用自定义View.OnTouchListener
来实现缩放。
现在我试图替换图像ImageView
后的画廊已经停止了高分辨率画面滚动,使用户可以放大更好/更。
我做了这个与OnItemSelectedListener
和setCallbackDuringFling
为false。
即使你快速地扔掉屏幕,这个工作正常。
但是,如果你把你的手指上的显示和移动它慢慢到边缘时,OnItemSelectedListener
是之前解雇下一个项目达到了中心和滚动动画停止。相反,画廊跳跃,就像它失去了联系联系,并立即在画廊中心的下一个项目。缓慢移动手指时,同一个项目上也会多次调用OnItemSelectedListener
(我通过保存最后选定项目的位置来避免此问题)。
所以(长篇故事短片)我正在寻找一个回调/监听器来调用Gallery
的“滚动/对齐网格”效果。我也试过AnimationListener
,但是当我呼叫getAnimation
时,画廊会返回null。
我绝望在这里......任何人都可以帮忙吗?
问题解决了:现在我使用的是android.support.v4.view.ViewPager
与自定义回调在OnPageChangeListener
:
onPageSelected
onPageScrollStateChanged
onPageScrolled
我建议对您的方法稍作修改。对于您的图库,覆盖onScroll(MotionEvent, MotionEvent, float, float)
和onFling(MotionEvent, MotionEvent, float, float)
让他们返回他们的超级但在MotionEvent.ACTION_DOWN || MotionEvent.ACTION_UP将移动标志设置为true ||假分别。
现在在getView(int,View,ViewGroup)方法的BaseAdapter中,当您返回图像视图时,如果移动标志为true,则返回低分辨率ImageView,否则返回高分辨率。
感谢您的小费,但' getView(...)'只要下一个项目变为可见(即滚动)就会被调用。此外,我已经试图让手势依赖于图像。但是,这也不适合我,因为如果您有MotionEvent.ACTION_UP,图库可能仍然在滚动以居中当前项目。我想在**项目居中后替换图片**。 – Christian