0
的Manifest.xmlBitmapFactory.decodeFile()返回null
<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之間。但是,我無法確定,因爲它沒有告訴我爲什麼它不能被解碼。
的代碼是來自:https://www.youtube.com/watch?v=dV46_-AS4Pg
file_uri檢查是否是通過打印logcat的 –
值實際上無效代碼,找到媒體存儲設備的絕對URI,我試過了,路徑工作正常。 – MyNameIsAsker