安卓动画冻结

时间:2013-02-03 21:38:57

标签: android

我有一个带有12张图像的动画,显示为加载图像。它本身工作正常,但是当我使用我的httpClient类从在线数据库中获取内容时,它会完全冻结,当内容完成提取时,你可以看到动画在不同的图像上停止。

如何在从db中提取内容时加载图像?

以下是一些代码:

班级成员:

ImageView loading;
AnimationDrawable loadAnimation;

的onCreate:

    LinearLayout main = (LinearLayout) findViewById(R.id.loading);
    loading = new ImageView(this);
    loading.setImageResource(R.drawable.loading);
    loadAnimation = (AnimationDrawable)loading.getDrawable();
    main.addView(loading);

我使用它在获取内容之前启动动画:

loadAnimation.start();

这是完成提取的时候:

loadAnimation.stop();

1 个答案:

答案 0 :(得分:2)

发生这种情况的原因是您正在主线程上执行数据库操作,这会在阻塞代码执行时冻结UI。为避免这种情况,您需要在不同的线程中执行这些操作。请查看使用AsyncTask查看如何异步下载文件的示例。

在您的情况下,请在onPreExecute()中启动动画并在onPostExecute()中停止播放。