1

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

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

这是一些代码:

班级成员:

ImageView loading;
AnimationDrawable loadAnimation;

创建:

    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();
4

1 回答 1

2

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

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

于 2013-02-03T21:46:58.477 回答