安卓动画冻结

  • 本文关键字:冻结 动画 android
  • 更新时间 :
  • 英文 :


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

如何使图像在从数据库获取内容时加载?

下面是一些代码:

班级成员:

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();
发生这种情况的

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

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

最新更新