如何在线下载 .jpg 到 SD 卡?

发布于 2024-11-29 01:23:37 字数 249 浏览 1 评论 0原文

我读过一些关于此的帖子,但它们似乎不起作用。

我有一张在线图片,http://sivo.site90.com/dag_1.jpg

我想要将图片下载到SD卡(sdcard/data/data/com.myapp), 显示已保存文件的图像视图,并可以稍后从 SD 卡中获取该文件以供离线查看。

有人知道我该怎么做吗?

I've read some posts about this, but they don't seem to work.

I have an online picture, http://sivo.site90.com/dag_1.jpg

I want to download the picture to the SD card (sdcard/data/data/com.myapp),
show an image view of the saved file, and have the file available later from the SD card for offline viewing.

Does anyone how I can do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空气里的味道 2024-12-06 01:23:37

我有类似的要求。但不是将图像保存在 SD 卡中。我把它保存到sqlite数据库中。

这是我用来获取图像并保存到字节数组的代码

try {
     URL imageUrl = new URL(url);
     URLConnection ucon = imageUrl.openConnection();

     InputStream is = ucon.getInputStream();
     BufferedInputStream bis = new BufferedInputStream(is);

     ByteArrayBuffer baf = new ByteArrayBuffer(500);
     int current = 0;
     while ((current = bis.read()) != -1) {
         baf.append((byte) current);
     }
     return baf.toByteArray();
} catch (Exception e) {
     Log.d("ImageManager", "Error: " + e.toString());
}

稍后您可以将此字节数组作为 blob 类型保存在数据库中。
这样,用户就无法从 SD 卡中删除您的图像。

您可以像这样将字节数组设置为图像视图

logoImage.setImageBitmap(BitmapFactory.decodeByteArray( currentAccount.accImage, 
        0,currentAccount.accImage.length));

I had a similar requirement. But instead of saving the image in the sd card. I saved it into the sqlite database.

This is the code I use to get the image and save to the bytearray

try {
     URL imageUrl = new URL(url);
     URLConnection ucon = imageUrl.openConnection();

     InputStream is = ucon.getInputStream();
     BufferedInputStream bis = new BufferedInputStream(is);

     ByteArrayBuffer baf = new ByteArrayBuffer(500);
     int current = 0;
     while ((current = bis.read()) != -1) {
         baf.append((byte) current);
     }
     return baf.toByteArray();
} catch (Exception e) {
     Log.d("ImageManager", "Error: " + e.toString());
}

Later you can save this byte array in the database as the type blob.
In this way, user cant delete your image from the sd card.

You can set the byte array to the imageview like this

logoImage.setImageBitmap(BitmapFactory.decodeByteArray( currentAccount.accImage, 
        0,currentAccount.accImage.length));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文