>我有一个包含 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()
中停止动画。