Страница 1 из 1

как таскать ImageView внутри ViewPager (делаю галлерею)

Добавлено: 17 июн 2016, 16:56
KleverinD
делаю просмотр изображений, уперся в проблему

ImageView помещаю в ViewPager, загружаю изображение в ImageView и изменяю его с помощью Matrix. Реализую возможность таскания изображения внутри ImageView (когда увеличено и не влезает в экран). Но при горизонтальном перетаскивании срабатывает прокрутка ViewPager'a (swipe).

Блин попробую объяснить проблему как смогу

Я пробовал решить эту проблему так: получаю события ACTION_DOWN и ACTION_MOVE в обработчиках onTouch() для ImageView и onTouchEvent() для ViewPager'a. Идея такая - если край изображения достиг края экрана то ACTION_MOVE обрабатывает ViewPager и перелистывает элемент, иначе обрабатывает ImageView и перемещает изображение. Но нужно учитывать в какую сторону смещен палец ведь если изображение уперлось в правый край экрана то дальнейшее смещение пальца влево должен обрабатывать ViewPager, а смещение вправо ImageView пока изображение не упрется в левый край экрана. Но понять в какую сторону смещается палец можно только из события ACTION_MOVE, при этом как я понял события ACTION_MOVE передаются только тому кто обработал ACTION_DOWN! и тут я в тупике как понять кому обрабатывать ACTION_DOWN - ImageView или ViewPager'у? или можно ли сгенерировать в коде самостоятельно событие ACTION_DOWN (при обработке ACTION_MOVE например в onInterceptTouchEvent) и не нарушит ли это работу приложения?

Может я вообще не в ту сторону копаю, прошу совета.

Re: как таскать ImageView внутри ViewPager (делаю галлерею)

Добавлено: 21 июн 2016, 09:25
KleverinD
если кому интересно решил проблему

создаю свой класс MyViewPager extends ViewPager, в нем перехватчик onInterceptTouchEvent всегда возвращает True, т.е. события не будут переданы вложенным элементам (страницам ViewPager). Все события обрабатываю в onTouchEvent класса, просто получаю текущую страницу и таскаю в ней рисунок или перелистываю страницу когда нужно, все работает.