我正在尝试创建一个简单的android动画。 反弹的Google地图标记。 我已经实现了一个简单的代码来执行此操作,但是当我在API 28上运行它时,这几乎可以了。当我在所有其他API版本上,在多个仿真器上甚至在我的手机上运行代码时,CPU使用率看起来都非常高,在所有运行时间内从35%上升到80-90%。我所有的主要活动看起来都比较慢。
我正在使用约束布局,我不知道这是否有帮助
那是我的bounce.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/bounce_interpolator">
<translate
android:duration="800"
android:toYDelta="-50"
android:repeatCount="infinite"
android:repeatMode= "reverse"
/>
</set>
这是我简单的主要活动:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.animation.AnimationUtils;
public class Home extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
findViewById(R.id.img_pointer1_id).startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.bounce));
}
}
关于如何解决此/任何替代解决方案的任何建议?
答案 0 :(得分:0)
这是动画的ObjectAnimator版本。你可以试试这个吗?希望对您有所帮助。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//findViewById(R.id.img_pointer1_id).startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.bounce));
ObjectAnimator animator = ObjectAnimator.ofFloat(findViewById(R.id.img_pointer1_id), "translationY", 0, -50, 0);
animator.setInterpolator(new BounceInterpolator());
animator.setDuration(800);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setRepeatMode(ValueAnimator.REVERSE);
animator.start();
}