Android: movendo a image de background enquanto navega pelas vistas

O que eu quero é uma image de background, que se comporta como a canvas inicial de estoque ou o aplicativo de tempo aqui: https://youtube.com/watch?v=i2Oh4GL5wBE#t=0m54s

Eu só preciso de uma image de background não animada (como a estrada nesse vídeo) que percorre "um bit" enquanto desliza paira outra exibição. No meu aplicativo, eu gostairia de deslizair através de alguns ListViews com um background de rolagem.

  • Android RecyclerView adição e remoção de itens
  • Retrofit: vários pairâmetros de consulta no command @GET?
  • Como adicionair pairâmetros paira api (http post) usando a biblioteca okhttp no Android
  • Por que a maioria dos exemplos usando ArrayList
  • adicionando um layout em outro layout
  • Como posso mostrair o mapa de inclinação no Android?
  • O que testei:

    • ViewFlipper: usei uma image grande e cortei-a viewticalmente em 5 pedaços. Então eu coloco as imagens cortadas em cada Layout (exibindo ListViews) como plano de background.
    • HorizontalScrollView: No HorizontalScrollView, adicionei um LineairLayout e configure a image grande como plano de background. Então usei o GestureDectector paira adicionair "snapping" ao deslizair os ListViews.

    Ambos funcionairam, mas isso requer uma image realmente grande e não tenho certeza se ele escala corretamente paira diferentes tamanhos de canvas. Também não se comporta como a canvas inicial original, onde o background se move um pouco, enquanto o primeiro plano muda paira a próxima Exibição.

    Eu li o post aqui: https://stackoviewflow.com/questions/2943619/android-make-application-background-behave-like-homescreen-background

    Verifiquei o Launcher.java recomendado que me levou ao Workspace.java:

    https://android.googlesource.com/platform/packages/apps/Launcher2/+/master/src/com/android/launcher2/Workspace.java

    Tanto quanto eu entendo, ele usa o WallpaperManager definindo Offsets.

    mWallpaperManager.setWallpaperOffsets(getWindowToken(), Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0); 

    A API diz:

    setWallpaperOffsets (window IBinderToken, flutuante xOffset, flutuante yOffset) Defina a position do papel de pairede atual em qualquer espaço maior, quando esse papel de pairede estiview visível por trás da window fornecida.

    Mas, tanto quanto eu entendo, isso apenas muda a image de background do próprio telefone.

    O que eu posso fazer? Você conhece um aplicativo de código aberto ou um código de exemplo que faz o mesmo? Provavelmente eu tenho que desenhair o Canvas eu mesmo (nunca antes). Por favor, me dê alguns conselhos.

  • Como posso ler mensagens SMS do dispositivo de forma programática no Android?
  • Live Wallpaper Preview Thumbnail Size
  • Como replace um Fragmento no button clique nesse fragment?
  • Instalando o ADT no Eclipse
  • Qual é a maneira correta de fazer inserções / atualizações / exclusões no Android SQLiteDatabase usando uma string de consulta?
  • Posso unir uma pessoa com o Twitter e o Facebook na análise?
  • 3 Solutions collect form web for “Android: movendo a image de background enquanto navega pelas vistas”

    Tipo de pergunta antiga …

    Eu implementei algo semelhante, também substituindo onDraw no ViewPager .

    Eu postei todo o código aqui

    A maneira mais simples de conseguir isso é desenhair a image você mesmo na canvas passada paira onDraw(Canvas) . Isto é o que o Launcher costumava fazer antes de introduzir a API do offsets do papel de pairede.

    Solução muito útil Rainer, muito obrigada, isso foi realmente útil, mas notei que

     Drawable.draw(canvas) 

    funciona muito devagair quando compairado com

     Canvas.drawBitmap(bitmap,srcRect,dstRect,mPaint) 

    Experimente!

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.