【问题标题】:Using downloaded images in an Android Application在 Android 应用程序中使用下载的图像
【发布时间】:2013-02-06 00:41:16
【问题描述】:
我想将 PDF 和图像下载到我的应用程序中,本质上它会调用 JSON Web 服务,返回 PDF 的链接、图像的链接和标题。它将下载图像和 PDF 并保存它们。然后它将显示带有标题的 PDF 和图像。我唯一的问题是如何处理图像?它们无法保存到 APK,因为它已被锁定。这些图像的分辨率足够高,可以缩小以适应所有其他密度,我应该只使用大图像,并在使用它时让活动按比例缩小。还是应该在检索过程中实现图像缩放器?
最终,PDF 和图像将被加载到 APK 中。我将如何检查资产文件夹以删除图像,我是否只需要调用在 Application First 开始检查资产文件夹中的文件时运行的服务,然后如果它们存在则将其删除?
【问题讨论】:
标签:
android
image-processing
【解决方案1】:
示例代码供您参考,您可以在其中从网络下载图像。将图像存储在资产文件夹中比内部存储器更好,并调整图像大小以获得良好的性能。您可以在调用 Web 服务之前删除文件夹并加载新集图片。
if (Utility.isWifiPresent()
|| Utility.isMobileConnectionPresent()) {
URL url = new URL(fileUrl);
InputStream iStream = url.openConnection().getInputStream();// .read(data)
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
byte[] tmpArray = new byte[1024];
int nRead;
while ((nRead = iStream.read(tmpArray, 0, tmpArray.length)) != -1) {
buffer.write(tmpArray, 0, nRead);
}
buffer.flush();
data = buffer.toByteArray();
FileOutputStream fOut = null;
//path to store
fOut = Utility.getFileOutputStreamForCloud(
sdcardFolderPath, fileUrl);
}
fOut.write(data);
fOut.flush();
fOut.close();