package uk.co.cogitolearning.propertyanimations_example;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class PropertyAnimation08 extends Activity
{
private ObjectAnimator anim;
private TextView isStartedText;
private TextView isRunningText;
private TextView isPausedText;
private TextView messageText;
@Override
@SuppressLint("NewApi")
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.property_animations08);
isStartedText = (TextView) findViewById(R.id.status_is_started);
isRunningText = (TextView) findViewById(R.id.status_is_running);
isPausedText = (TextView) findViewById(R.id.status_is_paused);
messageText = (TextView) findViewById(R.id.message_text);
ImageView someImage = (ImageView) findViewById(R.id.some_image);
anim = ObjectAnimator.ofFloat(someImage, "rotation", 0, 360);
anim.setDuration(1000);
anim.setStartDelay(1000);
anim.setRepeatCount(5);
anim.setRepeatMode(ObjectAnimator.RESTART);
Animator.AnimatorListener animationListener = new Animator.AnimatorListener()
{
@Override
public void onAnimationStart(Animator animation)
{
setStatusTexts();
messageText.setText("started");
}
@Override
public void onAnimationRepeat(Animator animation)
{
setStatusTexts();
messageText.setText("repeating");
}
@Override
public void onAnimationEnd(Animator animation)
{
setStatusTexts();
messageText.setText(messageText.getText()+" -- ended");
}
@Override
public void onAnimationCancel(Animator animation)
{
setStatusTexts();
messageText.setText("cancelled");
}
};
anim.addListener(animationListener);
if (android.os.Build.VERSION.SDK_INT >= 19)
{
Animator.AnimatorPauseListener pauseListener = new Animator.AnimatorPauseListener()
{
@Override
public void onAnimationResume(Animator animation)
{
setStatusTexts();
messageText.setText("resumed");
}
@Override
public void onAnimationPause(Animator animation)
{
setStatusTexts();
messageText.setText("paused");
}
};
anim.addPauseListener(pauseListener);
}
}
@SuppressLint("NewApi")
public void setStatusTexts()
{
if (android.os.Build.VERSION.SDK_INT >= 14)
isStartedText.setText("isStarted = " + anim.isStarted());
isRunningText.setText("isRunning = " + anim.isRunning());
if (android.os.Build.VERSION.SDK_INT >= 19)
isPausedText.setText("isPaused = " + anim.isPaused());
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void startAnimation(View view)
{
anim.start();
}
public void endAnimation(View view)
{
anim.end();
}
public void cancelAnimation(View view)
{
anim.cancel();
}
@SuppressLint("NewApi")
public void pauseAnimation(View view)
{
if (android.os.Build.VERSION.SDK_INT >= 19)
anim.pause();
}
@SuppressLint("NewApi")
public void resumeAnimation(View view)
{
if (android.os.Build.VERSION.SDK_INT >= 19)
anim.resume();
}
}