【发布时间】:2016-05-28 03:36:34
【问题描述】:
Manifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature
android:name="android.hardware.camera2"
android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
按钮 OnClickListner
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
getFileUri();
i.putExtra(MediaStore.EXTRA_OUTPUT, file_uri);
startActivityForResult(i, 10);
}
});
getFileUri()
private void getFileUri() {
image_name = "testing123.jpg";
file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
+ File.separator + image_name);
file_uri = Uri.fromFile(file);
}
OnActivityResult()
if(requestCode == 10 && resultCode == RESULT_OK){
bitmap = BitmapFactory.decodeFile(file_uri.getPath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] array = stream.toByteArray();
encoded_string = Base64.encodeToString(array, 0);
}
首先,有很多类似的问题,但没有一个适合我的情况。
我在拍照后尝试将图像发送到我的服务器,但我遇到了 BitmapFactory.decodeFile() 的问题。问题是它返回 null,即使拍摄的照片存在于我的画廊中。我认为真正的问题是我的图片的大小;它通常在 3.0 MB 和 5.0 MB 之间。但是,我不能确定,因为它没有告诉我为什么它不能被解码。
【问题讨论】:
-
通过在logcat中打印值检查file_uri是否为空
-
其实我试过了,路径正常。
标签: android bitmap bitmapfactory