Android动画高CPU使用率

时间:2018-09-25 19:02:40

标签: java android android-layout android-studio cpu-usage

我正在尝试创建一个简单的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));
    }
}

关于如何解决此/任何替代解决方案的任何建议?

1 个答案:

答案 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();
}
相关问题