我是ANDROID平台的新手.我在使用AminationDrawable在我的应用程序中使用以下动画设置一组16“框架:
在XML文件中我有:
在Java代码中,我有以下几个
首先我要声明该类并添加一个onCreate()方法,其中我设置了动画.
public class MyNewActivity extends Activity
{
// member variables (accessible from within class methods below).
AnimationDrawable mainAnimation;
long mSpeed = 50;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.my_widget);
// set up image
ImageView mainImage = (ImageView) findViewById(R.id.image_widget);
mainImage.setBackgroundResource(R.drawable.animated_image);
mainAnimation = (AnimationDrawable) mainImage.getBackground();
};
…然后我稍后在用户按下一个按钮的时候开始画图,我打电话给以下动画开始动画:
private void start()
{
// start the image rotating.
if (mainAnimation.isRunning())
mainAnimation.stop();
int numFrames = mainAnimation.getNumberOfFrames();
for (int ii = 0; ii < numFrames; ii++ )
{
// change the animation speed.
Drawable d = mainAnimation.getFrame(ii);
mainAnimation.scheduleDrawable(d, mainAnimation, mSpeed);
}
}
< …剪断…>
所以代码中的其他地方我有一个地方来调整成员变量“mSpeed”.如果我这样做,然后调用“start()”,动画就会启动,但速度总是相同的(基本上是上面的XML定义的),我的问题是如何修改帧的“持续时间”基于用户输入来移动这个动画更快/更慢吗?我看不到修改“持续时间”状态的方法,而且假设上面的“ScheduleDrawable()”调用将改变图形的帧持续时间.
谢谢您的帮助
标记.