我在我的主游戏线程中创建了一个动画可绘制和图像视图,该视图由处理游戏线程的活动(启动它等)配置。我在此处理活动中的代码如下所示:
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.one), 1000);
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.two), 1000);
mDistractionsThread.animation.addFrame(getResources().getDrawable(R.drawable.three), 1000);
mDistractionsThread.animation.setOneShot(false);
mDistractionsThread.imageAnim =(ImageView) findViewById(R.id.img);
mDistractionsThread.imageAnim.setBackgroundDrawable(mDistractionsThread.animation);
mDistractionsThread.animation.start();
正如您所看到的,变量mDistractionsThread是线程本身的句柄。这个编译很好但只显示第一帧(R.drawable.one)并且根本没有动画。我错过了什么?
我试图在mDistractionsThread中设置来自run()的animation.start(),但这只是给了我一个致命的异常,因为View只能从改变其字段的类中改变 - 在这种情况下不是游戏线程
我如何解决这个问题并让它通过框架动画,以及奖励点,在x轴上移动?!
非常感谢
答案 0 :(得分:0)
重要的是你开始动画的地方。尝试在活动中的onFocusChanged()中启动它。它应该有帮助