我使用以下代码在我的imageview中显示来自网址的图片:
private Drawable LoadImageFromWebOperations(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}
catch (Exception e)
{
return null;
}
}
Drawable drawable = LoadImageFromWebOperations("http://www.androidpeople.com/wp-content/uploads/2010/03/android.png");
imgView.setImageDrawable(drawable);
我有一个定时器,每5秒更换一次图像。但在一些罕见的情况下,该应用程序冻结。是因为LoadImageFromWebOperations无法加载图像?或任何想法可能是什么问题,以及如何解决它?谢谢!
答案 0 :(得分:0)
您正在使用createFromStream()阻止UI线程,这就是应用程序偶尔冻结的原因。
您需要做的是在AsyncTask doInBackground()和onPostExecute中加载图像,然后设置Drawable。当AsyncTask从网上下载时,你还需要另一个占位符(通常是一个微调器)