CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

Tween animation

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano L'avatar di DarthSith


    Registrato dal
    Jan 2010
    Messaggi
    256

    Ringraziamenti
    1
    Ringraziato 14 volte in 14 Posts
    Predefinito

    Tween animation

    Ragazzi ci sto sbattendo la testa da un bel po' ma proprio nn riesco a fare quello che vorrei.
    Mi spiego:
    ho una tween animation che ruota.
    La starto e stoppo senza problemi, però vorrei che sia quando si ferma che quando riparte riprendesse da dove era, e non che si resetti come invece fa.

    Ecco il codice:

    xml che descrive l'animazione di rotazione:
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android"
    	android:interpolator="@anim/wheel_interpolator">
    
    	<rotate
    	    android:fromDegrees="0"
    	    android:toDegrees="360"
    	    android:repeatCount="infinite"
    	    android:duration="10000"
    	    android:pivotX="50%"
    	    android:pivotY="50%"
    	    />
    	    
    </set>
    Così la starto:
    codice:
    wheel=(ImageView)findViewById(R.id.wheel);
    animation=AnimationUtils.loadAnimation(this, R.anim.wheel_animation);
    wheel.startAnimation(animation);
    e così la fermo:
    codice:
    wheel.clearAnimation();
    Non mi sono chiari i metodi cancel() e reset() di Animation.
    Se non chiamo clearAnimation come ho fatto poco sopra, cmq l'animazione riparte.

    Grazie a chi mi darà delucidazioni.

  2.  
  3. #2
    Baby Droid L'avatar di lorenzoff


    Registrato dal
    Oct 2010
    Messaggi
    14

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da DarthSith Visualizza il messaggio
    Ragazzi ci sto sbattendo la testa da un bel po' ma proprio nn riesco a fare quello che vorrei.
    Mi spiego:
    ho una tween animation che ruota.
    La starto e stoppo senza problemi, però vorrei che sia quando si ferma che quando riparte riprendesse da dove era, e non che si resetti come invece fa.

    Ecco il codice:

    xml che descrive l'animazione di rotazione:
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android"
    	android:interpolator="@anim/wheel_interpolator">
    
    	<rotate
    	    android:fromDegrees="0"
    	    android:toDegrees="360"
    	    android:repeatCount="infinite"
    	    android:duration="10000"
    	    android:pivotX="50%"
    	    android:pivotY="50%"
    	    />
    	    
    </set>
    Così la starto:
    codice:
    wheel=(ImageView)findViewById(R.id.wheel);
    animation=AnimationUtils.loadAnimation(this, R.anim.wheel_animation);
    wheel.startAnimation(animation);
    e così la fermo:
    codice:
    wheel.clearAnimation();
    Non mi sono chiari i metodi cancel() e reset() di Animation.
    Se non chiamo clearAnimation come ho fatto poco sopra, cmq l'animazione riparte.

    Grazie a chi mi darà delucidazioni.
    Ehm, premesso che non ne ho la più pazza idea, quel fromDegrees non andrebbe aggiornato? Ossia

    <pseudo>
    animation.stop();
    current_degrees = animation.getDegrees();
    <pausa>
    animation.start(current_degrees);
    </pseudo>

    Cioè, così come lo hai scritto non mi sorprende riparta sempre da tempo zero; ma del resto farei meglio a scaricare un nuovo gioco piuttosto che sparar palle
    «La deterrenza è l'arte di creare nell'animo dell'eventuale nemico il terrore di attaccare. Ed è proprio a causa dei congegni che determinano la decisione automatica irreversibile, escludendo ogni indebita interferenza umana, che l'ordigno "Fine di Mondo" è terrorizzante, eh, eh, eh, e di facile comprensione. E assolutamente credibile e convincente.»

  4. #3
    Androidiano L'avatar di DarthSith


    Registrato dal
    Jan 2010
    Messaggi
    256

    Ringraziamenti
    1
    Ringraziato 14 volte in 14 Posts
    Predefinito

    No purtroppo quella è una dichiarazione. Ci vorrebbe qualcosa per metterla in pausa.

  5. #4
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    2

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao lorenzoff
    prova ad aggiungere l'attributo android:fillAfter="true" all'interno del set:
    dovresti avere una cosa del genere:
    <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/wheel_interpolator" android:fillAfter="true">

  6. #5
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    2

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    opsss!!! la risposta era per DarthSith...
    e visto che ci siamo pongo anche io una domanda:
    qualcuno sa come funzionano esattamente "traslate" e "scale" con le dimensioni in %p?
    devo animare una draw che deve fare un percorso a Z sullo schermo, e sto uscendo pazzo!
    Esiste per caso un tool che aiuta a generare l'xml per questo tipo di animazione?

  7. #6
    Androidiano L'avatar di DarthSith


    Registrato dal
    Jan 2010
    Messaggi
    256

    Ringraziamenti
    1
    Ringraziato 14 volte in 14 Posts
    Predefinito

    Il fillAfter e before fa proprio quello che vorrei, ma nn funziona uguale perchè evidentenmente sbaglio il modo di startare e stoppare l'animazione.
    L'unico modo per stopparla che ho trovato è View.clearAnimation(Animation).
    Questo però fa si che l'animazione si resetti, e nn risolvo quindi il problema.
    Riguardo il tuo quesito non so aiutarti.

  8. #7
    Baby Droid


    Registrato dal
    Aug 2011
    Messaggi
    1

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ho un linearLayout (L1) che contiene un altro linearLayout (L2) che contiene bottoni e immagini. Premendo uno dei bottoni dentro L2 vorrei spostare nel basso il layout L2. Se setto fillAfter=false L2 mi fa l'animazione ma poi torna alla posizione iniziale. Se setto fillAfter=true L2 rimane nella nuova posizione, ma i bottoni all'interno non funzionano più, o meglio l'area per cliccare il bottone non si trova dove effettivamente vedo il bottone dentro L2 nella nuova posizione, ma tale area si trova in alto dove sarebbe se metto fillAfter=false.

    Come risolvo? grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy