3

Я получаю немного запутался из этого описания:Какие данные возвращаются при использовании ACTION_IMAGE_CAPTURE?

Вызывающий может пройти дополнительный EXTRA_OUTPUT контролировать, где этот образ будет записан. Если EXTRA_OUTPUT отсутствует, тогда небольшое размерное изображение возвращается в качестве объекта Bitmap в дополнительное поле. Это полезно для приложений, которым требуется только небольшое изображение. Если присутствует EXTRA_OUTPUT, то полноразмерное изображение будет записано в значение Uri EXTRA_OUTPUT.

С NO EXTRA_OUTPUT он вернет изображение «малого размера»?

С EXTRA_OUTPUT он вернет полноразмерное изображение?

«Возвращается как объект Bitmap в дополнительном поле» ...

На мой onActivityResult, я просто использовал Intent data как фактические данные. Предполагаю ли я использовать data.getExtra или что-то в этом роде?

+0

+1, как это определение в действительности никогда не было для меня ясно, как. Однако я не использую строку extra_output и не использовал контент-резольвер, как я был после данных пикселя. –

+0

Можете ли вы расширить это? Мне тоже понравятся пиксельные данные. – EGHDK

+0

С радостью, я расширил это как ответ –

ответ

3

В случае вы предоставляете Uri:

Intent action = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
action.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, myUri); 
startActivityForResult(action, CAMERA_RESULT); 

а затем получить его с помощью (после испытаний на requestCode и ResultCode):

Bitmap bitmap = BitmapFactory.decodeFile(myUri, options); 

В другом случае:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, CAMERA_RESULT); 

и получить его с помощью:

Bundle bundle = intent.getExtras(); 
Bitmap bitmap = (Bitmap) extras.get("data"); 
2

Это расширение моего комментария. Этот фрагмент коды работает хорошо для меня дают мне данные пикселя - получение черно-белым данным и ImageView является in my post here

@Override 
     public void onClick(View v) { 



      Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

      startActivityForResult(Intent.createChooser(intent, "Select Picture"), CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

      } 

    }); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) { 
      final ContentResolver cr = getContentResolver(); 
        final String[] p1 = new String[] { 
          MediaStore.Images.ImageColumns._ID, 
          MediaStore.Images.ImageColumns.DATE_TAKEN 
        }; 
        Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC"); 
        if (c1.moveToFirst()) { 
         String uristringpic = "content://media/external/images/media/" +c1.getInt(0); 
         Uri uri = Uri.parse(uristringpic); 
         try { 
          Bitmap bm = android.provider.MediaStore.Images.Media.getBitmap(cr, uri); 

Надеется, что это помогает

+0

Спасибо. Это помогает! – EGHDK

+0

@EGHDK Вы очень желанны. Я очень рад это слышать, это хороший способ получить данные пикселов, которые я нашел. –

+0

@EGHDK вам нужна дополнительная помощь? –

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