我有一个带有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();
答案 0 :(得分:2)
发生这种情况的原因是您正在主线程上执行数据库操作,这会在阻塞代码执行时冻结UI。为避免这种情况,您需要在不同的线程中执行这些操作。请查看使用AsyncTask
查看如何异步下载文件的示例。
在您的情况下,请在onPreExecute()
中启动动画并在onPostExecute()
中停止播放。