Come faccio a impostare lo zoom in e zoom out quando click sul imageview? Voglio che il mio programma di reagire quando l'utente clicca sul imageview deve raggiungere larga in una certa misura e posso muovermi imageview su quella schermata e talvolta ridurne le dimensioni quando si sposta su un punto qualsiasi dello schermo. Quando si fa clic di nuovo si riprende la dimensione originale cosa devo fare?animazione per lo zoom in e zoom out in Android per IMAGEVIEW
risposta
Per quanto ne so ci sono due modi.
Il primo modo:
creare una nuova cartella nella res chiamato 'anim'. Quindi crea un file xml all'interno, ad esempio zoomin.xml. Successivamente inserire il seguente codice all'interno.
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:toXScale="5"
android:fromYScale="1"
android:toYScale="5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
android:fillAfter="true">
</scale>
Effettuare un altro per lo zoom indietro, ma con valori invertiti.
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="5"
android:toXScale="1"
android:fromYScale="5"
android:toYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
android:fillAfter="true">
</scale>
È possibile modificare i valori in base alle proprie esigenze. Penso che siano auto-esplicativi.
E ora nel codice Java.
ImageView imageView = (imageView)findViewById(R.id.yourImageViewId);
Animation zoomin = AnimationUtils.loadAnimation(this, R.anim.zoomin);
Animation zoomout = AnimationUtils.loadAnimation(this, R.anim.zoomout);
imageView.setAnimation(zoomin);
imageView.setAnimation(zoomout);
Ora è sufficiente tenere traccia di quale è lo stato corrente. E per ogni stato eseguire queste linee di codici:
imageView.startAnimation(zoomin);
e
imageView.startAnimation(zoomout);
Ad esempio:
imageView.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
if(!pressed) {
v.startAnimation(zoomin);
pressed = !pressed;
} else {
v.startAnimation(zoomout);
pressed = !pressed;
}
}
});
L'altro modo è descritto qui: http://developer.android.com/training/animation/zoom.html.
È possibile effettuare questa operazione seguendo questa guida facilmente
http://developer.android.com/training/animation/zoom.html
poco si dovrebbe usare terzo imageview che è invisibile quando l'utente tocca qualsiasi imageview si desidera, è possibile visualizzarlo utilizzando animazione nel ImageView che è invisibile.
La ringrazio molto –