I have an ImageView in RelativeLayout :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabBar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#272727" android:orientation="horizontal" > <ImageView android:id="@+id/logoMobile" android:layout_width="100dp" android:layout_height="50dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:gravity="center" android:paddingTop="2.2dp" android:src="@drawable/logo" /> <ImageButton android:id="@+id/BtnSlide" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_centerVertical="true" android:background="@null" android:src="@drawable/lin" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/BtnSlide" android:gravity="center" android:paddingLeft="30dp" android:text="HEADER" android:textAppearance="?android:attr/textAppearanceMedium" />
This xml defines a โtab barโ on top of the application, right below the notification bar. I want ImageView rotate around its center. I tried this in my onCreate method:
logo = (ImageView)findViewById(R.id.logoMobile); ApplyAnimationToObject doAnimation = new ApplyAnimationToObject(logo); doAnimation.startRotationAnimation();
And then the ApplyAnimationToObject class:
package Logic; public class ApplyAnimationToObject { final ImageView image; public ApplyAnimationToObject(ImageView image) { this.image = image; } public void startRotationAnimation() { RotateAnimation anim = new RotateAnimation(0f, 350f, 15f, 15f); anim.setInterpolator(new LinearInterpolator()); anim.setRepeatCount(Animation.INFINITE); anim.setDuration(7000); image.startAnimation(anim); } }
But ImageView will not rotate or have no animation at all. Can anyone help me out?
EDIT
I tried using this code:
public void rotateView(View v){ Animation rotateAnimation = new RotateAnimation(0, 360, v.getWidth() / 2, v.getWidth() / 2); rotateAnimation.setDuration(10000); v.startAnimation(rotateAnimation); if(rotateAnimation.hasEnded()) Log.i("+++++ANIMATION+++++", "ENDED!!"); else Log.i("+++++++ANIMATION++++++", "NOT ENDED"); }
And the output of til LogCat tells me that the animation is not over yet, but the ImageView animation
is absent.
source share