user52252 user52252 - 2 months ago 14
Android Question

Android - RotateAnimation - fromDegrees toDegrees variables

I'm new in Android and I have a little problem.
I found this code for RotateAnimation:

xml file where are stored all data of RotateAnimation:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="20000"
android:startOffset="0"/>
</set>


java file:

package com.example.helloword;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

public class Rotation_test extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rotation_test);
// getActionBar().setDisplayHomeAsUpEnabled(true);


Button buttonRotateCenter = (Button) findViewById(R.id.rotatecenter);
final ImageView floatingImage = (ImageView) findViewById(R.id.floatingimage);


final Animation animationRotateCenter = AnimationUtils.loadAnimation(
this, R.anim.rotate_center);
buttonRotateCenter.setOnClickListener(new Button.OnClickListener() {

public void onClick(View arg0) {
// TODO Auto-generated method stub
floatingImage.startAnimation(animationRotateCenter);
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_rotation_test, menu);
return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}

}


How can I create a variable of this two values that are inside xml file?

android:fromDegrees="0"
android:toDegrees="360"

Answer

As per RotateAnimation class reference (http://developer.android.com/reference/android/view/animation/RotateAnimation.html), this class does not provide setter methods for fromDegrees and toDegrees. So, if you need to set these values in code, you will have to create the RotateAnimation object in code and pass fromDegrees and toDegrees values into the constructor.

RotateAnimation rotateAnimation = new RotateAnimation(fromDegrees, toDegrees);
Comments