Подтвердить что ты не робот

Как перейти из Галереи в HorizontalScrollView & ViewPager?

Мне нужно простое управление для выбора значка на Android 2.2 и выше.
Галерея была лучшим решением для меня, но она устарела, и вместо этого я должен использовать HorizontalScrollView и ViewPager.
Но как легко мигрировать? Как использовать эти классы и элементы управления в этом случае? Я пытаюсь найти полный пример для этого предмета, но я не могу его найти.

4b9b3361

Ответ 1

Этот метод от Dave Smith показывает способ использования ViewPager, чтобы визуальные результаты были очень похожи на Gallery:

Gallery-style ViewPager

Цитата мое сообщение в блоге о показе нескольких страниц за раз в ViewPager:

Его контейнер (com.example.pagercontainer.PagerContainer) обертывает ViewPager и вызывает setClipChildren(false); сам по себе, поэтому даже если ViewPager сосредоточен на одной выбранной странице, другие страницы, у которых есть координаты за пределами ViewPager, по-прежнему видимые, если они соответствуют размеру PagerContainer. Если размер ViewPager меньше PagerContainer, ViewPager может изменять размер страниц до такого размера, оставляя место для просмотра других страниц. PagerContainer, тем не менее, нужно немного помочь с событиями касания, поскольку ViewPager будет обрабатывать события салфетки только по своим видимым границам, игнорируя любые видимые на сторонах страницы.

Вы также можете просеять через этот поток разработчиков android-разработчиков, где кто-то указал на проблему с новыми версиями Android. Вам необходимо отключить аппаратное ускорение из-за ошибки в ViewPager.

Ответ 2

Существуют различные проблемы с сенсорной обработкой и аппаратным ускорением в связанном с CommonsWare обходном пути. Более простым и более элегантным решением, на мой взгляд, является указание отрицательного поля для ViewPager:

ViewPager.setPageMargin(
    getResources().getDimensionPixelOffset(R.dimen.viewpager_margin));

Затем я указал это измерение в моем dimens.xml:

<dimen name="viewpager_margin">-64dp</dimen>

Чтобы компенсировать перекрывающиеся страницы, каждый просмотр содержимого страницы имеет противоположный край:

android:layout_marginLeft="@dimen/viewpager_margin_fix"
android:layout_marginRight="@dimen/viewpager_margin_fix"

Опять в dimens.xml:

<dimen name="viewpager_margin_fix">32dp</dimen>

(Обратите внимание, что размер viewpager_margin_fix равен половине размера абсолютного viewpager_margin.)

Мы применили этот в приложении для голландской газеты De Telegraaf Krant:

Phone example in De Telegraaf KrantTablet example