1

我想要制作的是 Activity 中的许多星星(目前我只尝试一个),它们将与背景一起光泽,而另一张图片则作为它们的光泽。所以,我打算怎么做是AsyncTask从 main实例化Activity,它将管理我的星星的所有动画。在 Activity 的布局中,我有一张星星的图片,还有一张它的光泽图,在星星的图片后面,所以我要做的就是对星星的图片进行顺序淡入和淡出光泽。

我正在使用 ObjectAnimator 和 AnimatorSet 制作它,老实说,我不确定它们是否最适合性能,因为我在文档中看到有AlphaAnimations.

到目前为止,这是我的代码: 活动

public class LogoActivity extends Activity{


private AsyncLogoAnimation asyncLogoAnimation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.proba_logo_activity);


    asyncLogoAnimation = new AsyncLogoAnimation(this);
    asyncLogoAnimation.execute("");
}

AsyncTask的代码:

public class AsyncLogoAnimation extends AsyncTask<String, String, String>  {

private ObjectAnimator animator_FADEOUT;
private ObjectAnimator animator_FADEIN;
private AnimatorSet aSet;

// instanca od loga
private LogoActivity instance;

public AsyncLogoAnimation(LogoActivity instance){
    this.instance = instance;

    ImageView Gloss = (ImageView) instance.findViewById(R.id.gloss);
    animator_FADEOUT = ObjectAnimator.ofFloat(Gloss, "alpha", 0f);
    animator_FADEOUT.setDuration(1000);

    animator_FADEIN = ObjectAnimator.ofFloat(Gloss, "alpha",  0f, 1f);
    animator_FADEIN.setDuration(1000);


    aSet = new AnimatorSet();
    aSet.playSequentially(animator_FADEOUT, animator_FADEIN);


}


@Override
protected String doInBackground(String... params) {

    aSet.start();
}

在尝试完成这项工作之后,我收到错误异常:“动画器可能只能在 Looper 线程上运行”,这就是我停止进一步发展的地方,因为我什至不确定这是否是最好的性能,因为我'm 计划有 10 颗连续动画的星星。

我应该如何正确管理它?

4

0 回答 0