【问题标题】:Best way to download images from XML content从 XML 内容下载图像的最佳方式
【发布时间】:2012-01-25 11:34:27
【问题描述】:

我正在设计一个 Android 应用程序,它将显示一些将从远程 URL 以 xml 格式检索的新闻,例如 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 文件。然后解析它并保存数据。更新程序每 10 分钟在一个单独的线程上运行。

我的问题是: 处理图像的最佳方法是什么?

a) 我应该在显示新闻时对图像执行延迟加载

b) 我应该在解析 xml 文件时下载图像吗?

【问题讨论】:

    标签: android download android-image


    【解决方案1】:

    我建议在显示新闻时延迟加载,这样您就不会使用过多的带宽(并可能为用户带来成本)。如果用户不想看图片,那么下载图片就没有意义。

    【讨论】:

    • 您是否建议下载后立即将图像保存在 sdcard 上?
    【解决方案2】:

    对于图片,我认为你总是遵循延迟加载,因为图片加载可能需要一些时间,而且一个高效的延迟加载器可以帮助你避免任何未来的内存问题。

    【讨论】:

    • 您是否建议下载后立即将图像保存在 sdcard 上?
    【解决方案3】:

    只需从您的 XMl 中获取 &lt;Image&gt; 标记数据。

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

    将 Line 放入您的 AndroidMenifest:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    

    这就是我在我的应用程序中使用的所有内容。它工作正常。

    希望对你有很大帮助。

    【讨论】:

    • 您是否建议在下载后立即将图像保存在 sdcard 上?
    • 我建议您学习正确格式化您的帖子 - 您的代码丢失且未格式化。
    • @Siten 是的。例如,您写了“只需从您的 XMl 中获取 &lt;Image&gt; 标记”,但 &lt;Image&gt; 未显示,因为您没有正确格式化它。有时其他人可能会编辑您的帖子,但作为普通会员,这确实是您自己的责任。
    • @ShadowWizard 我一定会改进的。
    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2023-03-13
    • 2011-09-03
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多