我想要制作的是 Activity 中的许多星星(目前我只尝试一个),它们将与背景一起光泽,而另一张图片则作为它们的光泽。所以,我打算怎么做是AsyncTask
从 main实例化Activity
,它将管理我的星星的所有动画。在 Activity 的布局中,我有一张星星的图片,还有一张它的光泽图,在星星的图片后面,所以我要做的就是对星星的图片进行顺序淡入和淡出光泽。
我正在使用 ObjectAnimator 和 AnimatorSet 制作它,老实说,我不确定它们是否最适合性能,因为我在文档中看到有AlphaAnimation
s.
到目前为止,这是我的代码: 活动
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 颗连续动画的星星。
我应该如何正确管理它?