我有一个Android应用程序从服务器下载用户的个人资料图片,但我不知道如何保存它只有我的应用程序可以访问它。 我该怎么办?
答案 0 :(得分:0)
大多数保存图片的应用基本上都做了两件事:
答案 1 :(得分:0)
此 link将帮助您存储为私人数据。
您可以使用以下代码
public void saveImage(Bitmap bitmap) {
File imagePath = new File(Environment.getExternalStorageDirectory() + "/image.png");
try {
FileOutputStream fos = new FileOutputStream(imagePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
在此之前,将图像转换为位图。 您应该首先获得访问外部存储的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在清单文件中使用它。
答案 2 :(得分:0)
我们还有另一种方法可以将图像存储在本地。 首先使用以下代码将BITMAP映像转换为base64字符串。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
yourBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
现在您可以将此base64字符串存储在共享首选项中,否则您可以使用某些数据库库(如“ObjectBox”)将其存储为模型类对象。
现在反向处理..Base64到位图转换。
byte[] decodedString = Base64.decode(encoded, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);