gpt4 book ai didi

android - 如何将位图保存在内部存储上 从互联网下载

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:58 25 4
gpt4 key购买 nike

我正在使用 Asynctask 从 Internet 下载图像。

我想将这张图片保存到内部存储中,稍后我想使用这张图片。

我可以下载成功但是我找不到它存储的内部存储路径。

这个 DownloadImages.java

private class DownloadImages extends AsyncTask<String,Void,Bitmap> {

private Bitmap DownloadImageBitmap(){
HttpURLConnection connection = null;
InputStream is = null;

try {
URL get_url = new URL("http://www.medyasef.com/wp-content/themes/medyasef/images/altlogo.png");
connection = (HttpURLConnection) get_url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
is = new BufferedInputStream(connection.getInputStream());
final Bitmap bitmap = BitmapFactory.decodeStream(is);
// ??????????

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally {
connection.disconnect();
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}

return null;
}

@Override
protected Bitmap doInBackground(String... params) {
return DownloadImageBitmap();
}

}

任何帮助将不胜感激。 :)

谢谢。

最佳答案

您可以像这样在内部存储中保存和加载图像:保存:

public static void saveFile(Context context, Bitmap b, String picName){ 
FileOutputStream fos;
try {
fos = context.openFileOutput(picName, Context.MODE_PRIVATE);
b.compress(Bitmap.CompressFormat.PNG, 100, fos);
}
catch (FileNotFoundException e) {
Log.d(TAG, "file not found");
e.printStackTrace();
}
catch (IOException e) {
Log.d(TAG, "io exception");
e.printStackTrace();
} finally {
fos.close();
}
}

正在加载:

public static Bitmap loadBitmap(Context context, String picName){ 
Bitmap b = null;
FileInputStream fis;
try {
fis = context.openFileInput(picName);
b = BitmapFactory.decodeStream(fis);
}
catch (FileNotFoundException e) {
Log.d(TAG, "file not found");
e.printStackTrace();
}
catch (IOException e) {
Log.d(TAG, "io exception");
e.printStackTrace();
} finally {
fis.close();
}
return b;
}

但是如果你想在应用程序关闭时再次找到它,你将需要以某种方式保存图像名称。我会推荐一个 SQLLite 数据库,将 imageNames 映射到数据库中的条目。

关于android - 如何将位图保存在内部存储上 从互联网下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19978100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com