在捕获图像后,我不确定如何将位图作为文件上传。我是这样得到位图的:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CAM_REQUEST_CODE){
if(resultCode == RESULT_OK){
final Bitmap image = (Bitmap)data.getExtras().get("data");
}
}
}
使用Dropbox API,文件是这样上传的:
File file = new File("working-draft.txt");
FileInputStream inputStream = new FileInputStream(file);
Entry response = mDBApi.putFile("/magnum-opus.txt", inputStream,
file.length(), null, null);
Log.i("DbExampleLog", "The uploaded file's rev is: " + response.rev);
你可以这样做:
- 创建
ByteArrayOutputStream
- 调用
Bitmap.compress()
将JPEG/PNG字节写入输出流 - 从你刚刚输出的字节数组中创建一个
ByteArrayInputStream
- 将该输入流用于
putFile()
方法 - 使用数组大小作为文件长度
不过,我对内存会很谨慎。如果是我,我会尝试找到一种方法来返回活动结果中的位图源,而不是实际的位图。