2015-02-11 1 views
0
  if (resultCode == Activity.RESULT_OK && requestCode == 1 
       && null != data) 
      {    
      Uri selectedImage = data.getData(); 
      InputStream imageStream =getActivity().getContentResolver().openInputStream(selectedImage); 
      System.out.println("dfsdf"); 
      Bitmap bitmap2 = BitmapFactory.decodeStream(imageStream); 

в основном onactivityresult вот как я читал, и я выбран файл нулевой. когда я выбрал мой образ из файлового менеджера (/sdcard)..however когда я выбран из УВЧ player..i выбрать из камеры или экрана, он работает отличноумысел возвращает нулевое значение на картинке

   Intent intent = new Intent(); 
       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 
       startActivityForResult(
         Intent.createChooser(intent, "Select Picture"), 1); 
+0

Изучите схему 'Uri', что вы получите обратно. Используйте «ContentResolver», если схема «content». – CommonsWare

+0

Целевое намерение = новое намерение (Intent.ACTION_PICK, \t \t \t \t android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); если я это делаю, он решает проблему. Но пользователь никогда не может выбрать изображение из sdcard (файловый менеджер) – user3278732

+0

Ну что же означает/равно null? – greenapps

ответ

0

Используйте этот код для запуска вам намерение Chooser -

Intent pickIntent = new Intent(); 
       pickIntent.setType("image/*"); 
       pickIntent.setAction(Intent.ACTION_GET_CONTENT); 

       Intent takePhotoIntent = new Intent(
         MediaStore.ACTION_IMAGE_CAPTURE); 

       String pickTitle = this 
         .getResources() 
         .getString(R.string.edit_general_select_or_take_picture); // Or 
                        // get 
                        // from 
       // strings.xml 
       Intent chooserIntent = Intent.createChooser(pickIntent, 
         pickTitle); 
       chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, 
         new Intent[] { takePhotoIntent }); 

       startActivityForResult(chooserIntent, 
         SELECT_PICTURE); 

и ваш onActivityResult будет, как это -

protected void onActivityResult(int requestCode, int resultCode, 
      Intent imageReturnedIntent) { 
     super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
     if (imageReturnedIntent != null) { 
      if (imageReturnedIntent.getData() != null) { 
       Uri selectedImage = imageReturnedIntent.getData(); 



      } 
     } 
    } 

Надеюсь это поможет.

2
//Here is some sample code to pick photo from gallery or get from camera. 

// объявляем следующий

private static final int SELECT_PHOTO = 100; 
    private static final int CAMERA_REQUEST=101; 

// способ позвонить startactivityforresult выбрать фотографию из галереи (сд карты)

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*"); 
    startActivityForResult(photoPickerIntent, SELECT_PHOTO); 

// способ вызова startactivityforresult выбрать фотографию из камеры

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(cameraIntent, CAMERA_REQUEST); 

// onActivityResult метод

@Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
      super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

       if(resultCode == RESULT_OK){ 

       //pick image from gallery(sd card) 
        if(requestCode==SELECT_PHOTO) 
        { 

        Uri selectedImage = imageReturnedIntent.getData(); 
        InputStream imageStream = null; 
        try { 
         imageStream = getContentResolver().openInputStream(selectedImage); 
        } catch (FileNotFoundException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
        Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream); 
        imageView_Babypic.setImageBitmap(yourSelectedImage); 
       } 
        //pick image from camera 
        else if (requestCode==CAMERA_REQUEST) { 
         Bitmap photo = (Bitmap) imageReturnedIntent.getExtras().get("data"); 
         imageView_Babypic.setImageBitmap(photo); 
        } 


       } 

      } 

// при последнем использовании этого для использования камеры в вашем файле манифеста

<uses-permission android:name="android.permission.CAMERA"/> 
+0

Почему разрешение камеры, если вы снимаете изображения вне своего приложения в качестве намерения? – Xenolion

Смежные вопросы