studio realizar para hacer fotos como celular carga aplicaciones aplicacion animar animaciones animacion android animation

android - hacer - aplicaciones para realizar animaciones



Ejemplo de animaciĆ³n Tween simple (4)

Estoy tratando de implementar la animación interpolación "hiperespacial" descrita en http://developer.android.com/guide/topics/resources/animation-resource.html ("Recursos de animación"); sin embargo, parece que no funciona. escrito. Cuando ejecuto la aplicación, obtengo una vista en blanco debajo de la barra de título de la aplicación. ¿Qué estoy haciendo mal?

Por el ejemplo, aquí está mi código. Creé res / anim / hiperespacio_jump.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="1.0" android:toXScale="1.4" android:fromYScale="1.0" android:toYScale="0.6" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700" /> <set android:interpolator="@android:anim/accelerate_interpolator" android:startOffset="700"> <scale android:fromXScale="1.4" android:toXScale="0.0" android:fromYScale="0.6" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> <rotate android:fromDegrees="0" android:toDegrees="-45" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> </set> </set>

También creé un diseño / main.xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> </LinearLayout>

Finalmente tengo una actividad:

package com.tomoreilly.geology; import android.app.Activity; import android.os.Bundle; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView image = (ImageView) findViewById(R.id.ImageView01); Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); image.startAnimation(hyperspaceJump); } }

Sin embargo, no veo ninguna animación cuando ejecuto la aplicación. ¿Me falta algún detalle que no esté cubierto en el ejemplo de "Recursos de animación"?

Gracias, Tom


I Guess ViewFlipper es obligatorio. Porque cuando quieres animación entre animaciones necesitas ViewFlipper para hacer animación.

hacer cosas siguientes Supongo que resolver el problema.

Crea un nuevo archivo XML y agrega la pestaña ViewFlipper en él ...

Utilice la pestaña Incluir para incluir todos los demás diseños cuando quiera hacer una animación.

y que usar el siguiente código

flipper = (ViewFlipper) findViewById(R.id.flipper); Button button1 = (Button) findViewById(R.id.Button01); // Button in one activity Button button2 = (Button) findViewById(R.id.Button02); // Button in second activity // Other Methods private Animation inFromRightAnimation() { // Animation inFromRight = new TranslateAnimation( /* * Animation inFromRight = new ScaleAnimation( * Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, * 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, * Animation.RELATIVE_TO_PARENT, 0.0f); */ Animation inFromRight = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); inFromRight.setDuration(500); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } private Animation outToLeftAnimation() { // Animation outtoLeft = new TranslateAnimation( /* * Animation outtoLeft = new * ScaleAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, * Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, * 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); */ Animation outtoLeft = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); outtoLeft.setDuration(500); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; } private Animation inFromLeftAnimation() { // Animation inFromLeft = new TranslateAnimation( /* * Animation inFromLeft = new * ScaleAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, * Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, * 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); */ Animation inFromLeft = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); inFromLeft.setDuration(500); inFromLeft.setInterpolator(new AccelerateInterpolator()); return inFromLeft; } private Animation outToRightAnimation() { // Animation outtoRight = new TranslateAnimation( /* * Animation outtoRight = new * ScaleAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, * Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, * 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); */ Animation outtoRight = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); outtoRight.setDuration(500); outtoRight.setInterpolator(new AccelerateInterpolator()); return outtoRight; }


Su vista de imagen debe tener una fuente definida en el xml o su actividad.

xml:

<ImageView android:id="@+id/ImageView01" android:src="@drawable/someimage" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView>

actividad:

ImageView image = (ImageView) findViewById(R.id.ImageView01); image.setImageResource(R.drawable.some_image);


Para agregar una respuesta diferente, también puedes probar Universal Tween Engine para animar tus UI de Android. De hecho, su animación, que requiere bastantes líneas en su formato XML, se describiría así:

Timeline.createSequence() // First, set your pivot (Tween.set() works instantly) .push(Tween.set(image, ViewAccessor.PIVOT_XY).target(0.5f, 0.5f)) // Then, animate your scale and rotation as you want .push(Tween.to(image, ViewAccessor.SCALE_XY, 0.7f).target(1.4f, 0.6f)) .beginParallel() .push(Tween.to(image, ViewAccessor.SCALE_XY, 0.4f).target(0, 0)) .push(Tween.to(image, ViewAccessor.ROTATION, 0.4f).target(-45)) .end() // Finally, start the animation! .start();

Puede ser más legible cuando tienes un gran conjunto de acciones para secuenciar. El motor está muy optimizado para Android, y especialmente para juegos, y no asigna nada, para proporcionar el mejor rendimiento.

Es completamente de código abierto, muy documentado y lanzado con una licencia Apache-2.

Puedes probar la demostración de Android si quieres :)


package com.example; import android.app.Activity; import android.os.Bundle; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.ImageView; import android.widget.ViewFlipper; public class TeeenAni extends Activity { ViewFlipper flipper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView image = (ImageView) findViewById(R.id.ImageView01); Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.); image.startAnimation(hyperspaceJump); flipper = (ViewFlipper) findViewById(R.anim.hyperspace_jump); Button button1 = (Button) findViewById(R.id.Button01); Button button2 = (Button) findViewById(R.id.Button02); } private Animation inFromRightAnimation() { Animation inFromRight = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); inFromRight.setDuration(500); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } private Animation outToLeftAnimation() { Animation outtoLeft = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); outtoLeft.setDuration(500); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; } private Animation inFromLeftAnimation() { Animation inFromLeft = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); inFromLeft.setDuration(500); inFromLeft.setInterpolator(new AccelerateInterpolator()); return inFromLeft; } private Animation outToRightAnimation() { Animation outtoRight = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f); outtoRight.setDuration(500); outtoRight.setInterpolator(new AccelerateInterpolator()); return outtoRight; }

[R.anim.hyperspace_jump] [1]}

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView> <ViewFlipper android:id="@+id/details" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Home"></Button> <Button android:id="@+id/Button02" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Gallary"></Button>