如何暂停和重启机器人的动画? [英] How can i pause and restart an animations in Android?
本文介绍了如何暂停和重启机器人的动画?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
谁能告诉我如何暂停和重启机器人的动画。
动画XML是:
< XML版本=1.0编码=UTF-8&GT?;
<设置的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:shareInterpolator =假>
<翻译
机器人:fromXDelta =500%的Android版本:toXDelta =0%
机器人:fromYDelta =0%安卓toYDelta =0%
机器人:时间=10000
机器人:fillAfter =真
安卓的repeatCount =无限/>
< /集>
而code是:
动画AM = AnimationUtils.loadAnimation(这一点,R.anim.note);
music1.startAnimation(AM);
解决方案
启动动画之后,你只叫暂停和恢复方法。
公共类TranslateAnim扩展TranslateAnimation {
公共TranslateAnim(浮fromXDelta,浮toXDelta,浮fromYDelta,
浮动toYDelta){
超(fromXDelta,toXDelta,fromYDelta,toYDelta);
// TODO自动生成构造函数存根
}
私人长mElapsedAtPause = 0;
私人布尔mPaused = FALSE;
@覆盖
公共布尔getTransformation(长currentTime的,转型outTransformation){
如果(mPaused&安培;&安培; mElapsedAtPause == 0){
mElapsedAtPause = currentTime的-getStartTime();
}
如果(mPaused)
setStartTime(currentTime的-mElapsedAtPause);
返回super.getTransformation(currentTime的,outTransformation);
}
公共无效暂停(){
mElapsedAtPause = 0;
mPaused = TRUE;
}
公共无效简历(){
mPaused = FALSE;
}
Can anyone please tell me how to pause and restart an animations in Android.
Animation XML is:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="500%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="10000"
android:fillAfter="true"
android:repeatCount="infinite"/>
</set>
And the code is:
Animation am=AnimationUtils.loadAnimation(this, R.anim.note);
music1.startAnimation(am);
解决方案
and after start your animation you have only call pause and resume methods.
public class TranslateAnim extends TranslateAnimation{
public TranslateAnim(float fromXDelta, float toXDelta, float fromYDelta,
float toYDelta) {
super(fromXDelta, toXDelta, fromYDelta, toYDelta);
// TODO Auto-generated constructor stub
}
private long mElapsedAtPause=0;
private boolean mPaused=false;
@Override
public boolean getTransformation(long currentTime, Transformation outTransformation) {
if(mPaused && mElapsedAtPause==0) {
mElapsedAtPause=currentTime-getStartTime();
}
if(mPaused)
setStartTime(currentTime-mElapsedAtPause);
return super.getTransformation(currentTime, outTransformation);
}
public void pause() {
mElapsedAtPause=0;
mPaused=true;
}
public void resume() {
mPaused=false;
}
这篇关于如何暂停和重启机器人的动画?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文