То, что я хочу иметь, - это фоновое изображение, которое ведет себя как настольный кадр или приложение для погоды здесь: https://youtube.com/watch?v=i2Oh4GL5wBE#t=0m54s p >
Мне просто нужно не анимированное фоновое изображение (например, дорога в этом видео), которая прокручивается "немного", пока вы выбираете другой вид. В моем приложении я хотел бы прокрутить список ListViews с помощью прокручиваемого фона.
Что я тестировал:
- ViewFlipper: я использовал большое изображение и разрезал его по вертикали на 5 штук. Затем я устанавливаю эти отрезанные изображения в каждом макете (отображая ListViews) в качестве фона.
- HorizontalScrollView: в HorizontalScrollView я добавил LinearLayout и установил большое изображение в качестве фона. Затем я использовал GestureDectector для добавления "привязки" при прокрутке ListViews.
Оба работали, но для этого требуется действительно большой образ, и я не уверен, правильно ли он масштабируется для разных размеров экрана. Также он не ведет себя как исходный рабочий стол, где фон немного движется, а передний план переходит к следующему представлению.
Я прочитал сообщение здесь: https://stackoverflow.com/info/2943619/android-make-application-background-behave-like-homescreen-background
Я проверил рекомендованную Launcher.java, которая привела меня к Workspace.java:
Насколько я понимаю, он использует WallpaperManager, устанавливая Offsets.
mWallpaperManager.setWallpaperOffsets(getWindowToken(),
Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0);
API говорит:
setWallpaperOffsets (IBinder windowToken, float xOffset, float YOffset) Установите положение текущие обои в любом размере пространство, когда эти обои видны за данным окном.
Но, насколько я понимаю, это просто меняет фоновое изображение самого телефона.
Что я могу сделать? Знаете ли вы приложение с открытым исходным кодом или образец кода, который делает то же самое? Вероятно, мне приходится рисовать Canvas (никогда раньше). Пожалуйста, дайте мне несколько советов.