android - animate - ¿Cómo rotar un drawable por ObjectAnimator?
objectanimator android (2)
Prueba esta sencilla animación de rotación aplicada a una imagen.
ImageView imageview = (ImageView)findViewById(R.id.myimage);
RotateAnimation rotate = new RotateAnimation(180, 360, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(500);
imageview.startAnimation(rotate);
Esta respuesta es solo para hacer una pregunta, es correcto que el área de clic sea diferente a la posición actual de View
. Por favor, marque esta pregunta para hacer que el área de clic sea correcta. No se puede hacer clic en el botón después de TranslateAnimation
Alphaing un trabajo dibujable bien como este:
if(mAlphaAnimation == null){
mAlphaAnimation = ObjectAnimator.ofFloat(this, "alpha", 0.0f,1.0f).setDuration(TARGET_ANIM_ALPHA_DURATION);
mAlphaAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
mAlphaAnimation.setStartDelay(TARGET_ANIM_ALPHA_DELAY_BASE*power);
mAlphaAnimation.setRepeatCount(ValueAnimator.INFINITE);
mAlphaAnimation.setRepeatMode(ValueAnimator.REVERSE);
mAlphaAnimation.addUpdateListener(this);
}
Pero si quiero rotar un dibujo como el de abajo, no funciona.
private void createRotateAnim(float fromDegress,float toDegress,int duration){
if(mRotateAnimation == null){
mRotateAnimation = ObjectAnimator.ofFloat(this, "rotation",fromDegress,toDegress).setDuration(duration);
mRotateAnimation.setStartDelay(100);
mRotateAnimation.setInterpolator(new AccelerateInterpolator());
mRotateAnimation.addUpdateListener(this);
}
}
Cualquiera puede ayudarme a solucionar este problema, o esta es cualquier otra forma de crear una animación dibujable por rotación.
Lo siento por mi pobre inglés.
Pruebe con ObjectAnimator
en ObjectAnimator
lugar.
ImageView imageview = (ImageView)findViewById(R.id.image);
ObjectAnimator imageViewObjectAnimator = ObjectAnimator.ofFloat(imageview ,
"rotation", 0f, 360f);
imageViewObjectAnimator.setDuration(1000); // miliseconds
imageViewObjectAnimator.start();
EDITAR Como esta pregunta llama la atención, permítame explicarle por qué usar ObjectAnimator
lugar de otros animadores de transición.
Lo que pasa con el uso de ObjectAnimator
es que mueve tanto el área visible como el área de clic del elemento, si utiliza otro método de animación, por ejemplo, Animación de transición o algunos otros Animadores, y digamos si desea mover el Button
desde la parte inferior izquierda. de la pantalla a la parte superior izquierda, solo moverá el área visible pero no el Button
sí, el área en la que se puede hacer clic todavía estará en la posición anterior, en este caso, el área en la que se puede hacer clic todavía estará en la parte inferior izquierda en lugar de la parte superior izquierda donde moviste el botón
Si hace lo mismo con ObjectAnimator
, tanto el área visible como el área en la que se puede hacer clic moverán la ubicación deseada.