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 22/04/13, 00:35:29
Array

[xs_avatar]
manolazo manolazo no está en línea
Miembro del foro
 
Fecha de registro: jun 2012
Localización: Madrid
Mensajes: 219
Modelo de smartphone: Samsung Galaxy S7 edge
Tu operador: Pepephone
Duda con ObjectAnimator

Buenas, estoy jugando un poco con la clase ObjectAnimator pero hay cosas que no salen o no entiendo muy bien.

Un ejemplo es este codigo el cual me da un error Fatal exception main:
java.lang.NosuchFieldError: android.view.View.ALPHA

Código:
public class PropertyAnimations extends Activity{
	CheckBox mCheckBox;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
      
                final Button alphaButton = (Button) findViewById(R.id.alphaButton);

               ObjectAnimator alphaAnimation = ObjectAnimator.ofFloat(alphaButton, 
                      View.ALPHA, 0);
	       alphaAnimation.setRepeatCount(1);
	       alphaAnimation.setRepeatMode(ValueAnimator.REVERSE);
               alphaAnimation.start();
  }
}
Un saludo.

EDITO:
Hola,
Es curioso, si ejecuto la aplicacion con el AVD me da el error indicado, pero si uso el galaxy s3 me corre sin problemas. ¿ A que se debe?

Última edición por manolazo Día 22/04/13 a las 01:40:55.
Responder Con Cita


  #2  
Viejo 22/04/13, 08:46:28
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
Para poder usar ObjectAnimator necesitas como mínimo HoneyComb (y para algunas cosas concretas ICS). En el AVD tendrás configurado una versión anterior a HoneyComb, mientras que en el S3 si que tienes como mínimo ICS.

Y en el caso concreto de la propiedad ALPHA, necesitas ICS.

Si necesitas usar tu programa en versiones anteriores a ICS y quieres seguir usando las animaciones, usa NineOldAndroids:

http://nineoldandroids.com
Responder Con Cita
  #3  
Viejo 22/04/13, 20:50:56
Array

[xs_avatar]
manolazo manolazo no está en línea
Miembro del foro
 
Fecha de registro: jun 2012
Localización: Madrid
Mensajes: 219
Modelo de smartphone: Samsung Galaxy S7 edge
Tu operador: Pepephone
hoila,
No me di cuenta que tenia puesto un avd con una versión anterior a ICS , ahora con el mas nuevo funciona correctamente.

Pero surge otra duda respecto a ObjectAnimator y Keyframe:

Código:
protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

               final Button rotateButton = (Button) findViewById(R.id.rotateButton);
     
                ObjectAnimator rotateAnimation = ObjectAnimator.ofFloat(rotateButton , View.ROTATION, 180);

               rotateAnimation.start();
}
En este caso si funciona la animacion una vez se ejecuta.
Pero si usamos Keyframes como en este caso, no rotaria el boton:

Código:
           Keyframe kf1 = Keyframe.ofFloat(.5f, 180f);
	    Keyframe kf2= Keyframe.ofFloat(.99f, 45f);
	    Keyframe kf3 = Keyframe.ofFloat(1f, 195f);
	    PropertyValuesHolder rotacion= PropertyValuesHolder.ofKeyframe("rotacion", kf1, kf2);
	    ObjectAnimator rotateAnimation2 = ObjectAnimator.ofPropertyValuesHolder(rotateButton, rotacion);

             rotateAnimation2.start();
Por lo que leo , el primer argumento del keyframe es el tiempo del frame y el segundo el valor expresado en floats.

En el caso de abajo quiero qoue rote primero 180 grados y luego 45 por ejemplo . pero no hace nada.

ALguna sugerencia??

EDITO:

Veo que el fallo esta en poner: .ofKeyframe("rotacion", kf1, kf2); en vez de "rotation".

No obstante no veo que varie si se cambia el primer parametro del Keyframe, es decir el tiempo , he probado poner cualquier valor en el primer argumento y no varia nada.

Alguna sugenrencia? gracias.

Última edición por manolazo Día 22/04/13 a las 21:57:32.
Responder Con Cita
Respuesta

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



Hora actual: 18:09:46 (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 / 邮件联系 /