#java #android #android-studio
Вопрос:
Поэтому я использовал это, чтобы открыть свое изображение, выберите при нажатии кнопки
//Open image chooser Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, SELECT_PHOTO);
и используется на activityresult
private final static int SELECT_PHOTO = 12345; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.e("CALLED", "OnActivity Result"); if (requestCode == SELECT_PHOTO amp;amp; resultCode == RESULT_OK) { // Let's read picked image data - its URI Uri pickedImage = data.getData(); // Let's read picked image path using content resolver String[] filePath = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(pickedImage, filePath, null, null, null); cursor.moveToFirst(); String imagePath = cursor.getString(cursor.getColumnIndex(filePath[0])); BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap bitmap = BitmapFactory.decodeFile(imagePath, options); Log.e("img", "It worked"); // Do something with the bitmap // At the end remember to close the cursor or you will end with the RuntimeException! cursor.close(); } }
В logcat не вызывается onActivityResult, и я не могу понять, почему. Поэтому, когда я нажимаю кнопку, появляется окно выбора изображения, я выбираю изображение, а затем оно возвращается на главный экран. Я что-то упускаю, так как следовал чужому коду, но все равно получаю то же самое
Комментарии:
1.
protected void
это не то, чем должно быть.
Ответ №1:
Дайте этому попробовать:
Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(photoPickerIntent,"Select:"), SELECT_PHOTO);