您需要將File
對象保存到磁盤才能正常工作。此方法會將imageData
字符串保存到磁盤並返回關聯的File
對象。
public static File saveImage(final Context context, final String imageData) {
final byte[] imgBytesData = android.util.Base64.decode(imageData,
android.util.Base64.DEFAULT);
final File file = File.createTempFile("image", null, context.getCacheDir());
final FileOutputStream fileOutputStream;
try {
fileOutputStream = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
final BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
fileOutputStream);
try {
bufferedOutputStream.write(imgBytesData);
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
它在應用程序的「緩存」目錄中創建一個臨時文件。但是,您仍然有責任在您不再需要該文件時刪除該文件。
我認爲使用FileOutputStream創建文件可能更好,然後通過服務器上的寧靜URL提供。假設圖像數據已經是你想要的格式,只需要將數據寫入文件即可。看到這個線程:http://stackoverflow.com/questions/20879639/write-base64-encoded-image-to-file – DrewT
但是,如果我要創建一個'FileOutputStream',我該如何訪問一個File對象?該庫特別需要File參數,對FileOutputStream還有更多的東西嗎? – apoorvk
只需在將圖像寫入文件後從寧靜的網址投放。無論如何,似乎你已經修好了! – DrewT