Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 07/08/15, 08:36:38
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
problema animaciones

Buenas compañeros tengo un problemilla con unas animaciones...
Resulta que tengo dos texview en los cuales uso una animación para que aparezcan uno de izquierda a derecha y el otro viceversa.
Los anim son estos:

Código:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="-50%p"
        android:toXDelta="0"
        android:duration = "1000"/>
</set>
Código:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration = "1000"/>
</set>
y el java que lo mueve este;

Código:
public class IntroActivity extends AppCompatActivity {
    private TextView textIntro1;
    private TextView textIntro2;
    private TextView textIntro3;
    private final int DURACION_SPLASH = 3000;
      @override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_intro);
        textIntro1=(TextView)findViewById(R.id.textIntro1);
        textIntro2=(TextView)findViewById(R.id.textIntro2);
        textIntro3=(TextView)findViewById(R.id.textpro);

        Animation t1= AnimationUtils.loadAnimation(this,R.anim.anim_derecha);
        Animation t2= AnimationUtils.loadAnimation(this,R.anim.anim_izquierda);
        Animation t3= AnimationUtils.loadAnimation(this,R.anim.anim_fadeout);
        textIntro1.startAnimation(t1);
        textIntro2.startAnimation(t2);
        textIntro3.startAnimation(t3);
        new Handler().postDelayed(new Runnable() {
            public void run() {

                Intent intent = new Intent(IntroActivity.this, Inicio_Activity.class);
                startActivity(intent);
                finish();
            }

            ;
        }, DURACION_SPLASH);
    }
Bien el problema es que en una tablet las animaciones corren fluidas y sin ningún problema , y sin embargo en un móvil (un samsung Grand Prime) hacen un parón a medio recorrido , no entiendo el motivo de esto , sera por espacio? o que puede ser?

Vídeo con la animación:

Última edición por rafaxplayer Día 07/08/15 a las 08:41:04.
Responder Con Cita


  #2  
Viejo 08/08/15, 15:32:13
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Hola, yo te recomendaria que uses un objectAnimator, son mucho mejores en mi opinion, que las animaciones antiguas y además si quieres dar soporte a dispositivos 3.0- tienes a Nineoldandroids.
Responder Con Cita
  #3  
Viejo 09/08/15, 15:03:33
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
gracias por la respuesta , he usado objectanimator y el resultado a sido el mismo que con animation.
Responder Con Cita
  #4  
Viejo 11/08/15, 17:59:36
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Entonces es problema de tiempos de ejecución, es el caso de mi telefono, un Galaxy ace ( ) en este terminal Flappy Bird es algo lento, en cambio en un Xperia es mucho mas rapido o normal, si me equivoco me gustaria invocar a kriogeN o mocelet para corregirme, saludos.
Responder Con Cita
  #5  
Viejo 12/08/15, 15:10:53
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Usando ObjectAnimator no deberías tener ningún problema, yo he usado ObjectAnimator con NineOldAndroids en dispositivos muy antiguos (tan antiguos que no tenían ni HoneyComb) y las animaciones iban perfectas.

En cambio el sistema antiguo de animaciones (AnimationUtils, etc) es muy muy malo, incluso en dispositivos modernos a veces las animaciones tardan en ejecutarse o van a tirones.
Responder Con Cita
  #6  
Viejo 14/08/15, 18:21:08
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Bueno he probado de todo y el efecto queda igual, se traba...

Aquí os dejo el code con objectanimator haber si veis algo...

Código:
 textIntro1=(TextView)findViewById(R.id.textIntro1);
        textIntro2=(TextView)findViewById(R.id.textIntro2);
        textIntro3=(TextView)findViewById(R.id.textpro);

        ObjectAnimator translateX1 = ObjectAnimator.ofFloat(textIntro1, "translationX",-100,0);
        ObjectAnimator translateX2 = ObjectAnimator.ofFloat(textIntro2, "translationX",100,0);
        final ObjectAnimator fadeout = ObjectAnimator.ofFloat(textIntro3, "Alpha",0.0f,1.0f);
        fadeout.setDuration(1000).addListener(new Animator.AnimatorListener() {
            @override
            public void onAnimationStart(Animator animation) {

            }

            @override
            public void onAnimationEnd(Animator animation) {
                Intent intent = new Intent(IntroActivity.this, Inicio_Activity.class);
                startActivity(intent);
                finish();
            }

            @override
            public void onAnimationCancel(Animator animation) {
                Intent intent = new Intent(IntroActivity.this, Inicio_Activity.class);
                startActivity(intent);
                finish();
            }

            @override
            public void onAnimationRepeat(Animator animation) {

            }
        });
        fadeout.setInterpolator(new AccelerateInterpolator());
        translateX1.setInterpolator(new LinearInterpolator());
        translateX1.setDuration(1000);
        translateX2.setInterpolator(new LinearInterpolator());

        translateX2.setDuration(1000).addListener(new Animator.AnimatorListener() {
            @override
            public void onAnimationStart(Animator animation) {

            }

            @override
            public void onAnimationEnd(Animator animation) {
                fadeout.start();
            }

            @override
            public void onAnimationCancel(Animator animation) {
                Intent intent = new Intent(IntroActivity.this, Inicio_Activity.class);
                startActivity(intent);
                finish();
            }

            @override
            public void onAnimationRepeat(Animator animation) {

            }
        });
        translateX2.start();
        translateX1.start();
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 08:14:06 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /