2010-10-26 15 views
11

Ho uno RelativeLayout che riempie lo schermo e un paio di ImageView posizionato su di esso utilizzando i margini LayoutParams. Questi ImageView sono animati in diversi modi, e in un caso voglio un'immagine "volare dentro" dallo schermo da destra.Come posizionare una vista fuori dallo schermo in modo che possa essere animata per spostarsi sullo schermo?

Sfortunatamente, se imposto leftMargin per tale ImageView maggiore della larghezza dello schermo, non appare (o appare ritagliato se parzialmente visibile all'inizio dell'animazione).

Ho provato a impostare la larghezza e l'altezza di RelativeLayout in modo che sia più grande della dimensione dello schermo: funziona, ma solo parzialmente: se l'immagine è completamente fuori dallo schermo, non funziona, e se l'immagine è parzialmente visibile, è non ritagliata, ma funziona solo per i lati destro e inferiore.

Così, la mia domanda è questa: come posizionare diversi ImageViews on e off lo schermo in modo che io possa animarle utilizzando Animation?

+0

Grazie, ci proverò. – Fixpoint

+0

Ok, per favore pubblica la tua soluzione se ne hai uno. Al momento sto avendo qualche problema con l'animazione, la mia animazione segue l'asse sbagliato, non so ancora perché. –

risposta

5

Alla fine, ho usato un trucco: ho combinato AnimationDrawable e vista l'animazione. Ho fatto quanto segue (supponendo che l'animazione debba eseguire T millisecondi):

  1. Posizionare sullo schermo ImageView.
  2. Imposta come sfondo un AnimationDrawable con i seguenti cornici:
    • vuote Drawable: 1ms,
    • normali Drawable: Tms. animazione
  3. Cambio di vista a questo:
    • salto per posizione di off-screen (traduzione di durata = 1 ms),
    • fare animazione normale.
+4

hai implementato? Sarebbe bello controllare qualche codice! – gwa

Problemi correlati