我正在设计一个Android应用程序,它将显示一些将以xml格式从远程URL检索的新闻,比如http://adomain/latest.xml
XML文件具有以下格式:
<articles>
<article>
<id>6</id>
<title>A sample title</title>
<image>http://adomain/images/anImage.jpg</image>
<lastupdate>1326938231</lastupdate>
<content><![CDATA[Sample content]]></content>
</article>
...
</articles>
我创建了一个侦听连接更改的更新程序服务,当系统通过Internet连接时,它会尝试下载xml文件。然后解析它并保存数据。 Updater每隔10分钟在一个单独的线程上运行。
我的问题是: 处理图像的最佳方法是什么?
a)我应该在显示新闻项目时对图像执行延迟加载
OR
b)我在解析xml文件时应该下载图像吗?
答案 0 :(得分:0)
我建议在显示新闻项时延迟加载,因此您不会使用过多的带宽(并且可能会为用户带来成本)。如果用户不想查看图像,则无需下载图像。
答案 1 :(得分:0)
对于图像,我认为你总是遵循延迟加载,因为图像加载可能需要一些时间,而且一个高效的延迟加载器可以帮助你避免任何未来的内存问题。
答案 2 :(得分:0)
只需从您的XMl中获取<Image>
标记数据。
String imgURL = your <Image> value;
ImageView imageView = new ImageView(this);
Bitmap bmp = BitmapFactory.decodeStream(new java.net.URL(imgURL).openStream());
imageView.setId(i);
imageView.setImageBitmap(bmp);
这将用于设置图像,您还可以在“bmp”中获取图像。
Android provide directly show image from URL:
将商店图片存储到SD卡:
File file = new File (pathOfSdCard, iamgeName);
try {
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 10, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
将线放到AndroidMenifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这是我在我的应用中使用的全部内容。它工作正常。
我希望这会对你有所帮助。