1
Я могу получить Bitmap
с изображениями в Android, но я в беде, когда пытаюсь получить объект File
. Мой вопрос в том, как я могу получить объект File
, когда возвращается onActivityResult
.Получить файл объекта onActivityResult, если выбрать Изображение
Вот идет мой код:
Чтобы открыть выбор изображения:
private void setUpAddMorePicturesClick() {
Button btnAddPictures = (Button)findViewById(R.id.btn_add_pictures);
btnAddPictures.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);//
startActivityForResult(Intent.createChooser(intent, getString(R.string.text_select_picture)),
ConstantValues.REQUEST_CODE_SELECT_IMAGE);
}
});
}
OnActivityResult Метод:
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ConstantValues.REQUEST_CODE_SELECT_IMAGE)
{
if (resultCode == Activity.RESULT_OK)
{
if (data != null)
{
//Uri uri = data.getData();
//String uriString = uri.toString();
//File imgFile = new File(uriString);
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
File imgFile = new File(picturePath); // <-- NOT WORKING
// File imgFile = Environment.getExternalStoragePublicDirectory(data.getData().getPath());
//Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
//byte[] s = Utils.bitmapToByteArray(bitmap);
Snackbar snackbarError = Snackbar.make(rootRelativeLayout, R.string.msg_error_wcf_call_default, Snackbar.LENGTH_LONG);
//new EscortBusiness(this).addImage(s, snackbarError);
new EscortBusiness(this).addImageMultiPart(imgFile, snackbarError);
}
} else if (resultCode == Activity.RESULT_CANCELED)
{
Toast.makeText(this, "Cancelled", Toast.LENGTH_SHORT).show();
}
}
}
Не пытайтесь получить объект File. Тебе это не нужно. Используйте uri напрямую. – greenapps
@greenapps действительно мне это нужно, я должен загрузить выбранное изображение, а в методах дооснащения в качестве параметра используется объект File. – guisantogui
'// <- НЕ РАБОТАЕТ'. Ошибочная ошибка. Какой путь вы получили? Что происходит вместо этого? – greenapps