2010-02-22 2 views
35

Если вы хотите использовать встроенную активность камеры, которая использует встроенную камеру для Android, просто выполните следующее.Использование активности камеры в Android

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     this.startActivityForResult(camera, PICTURE_RESULT); 

Вы хотите получить образы назад от отличной камеры, которую вы отображали, но как?

+1

Ну, мой вопрос: что такое PICTURE_RESULT? –

+2

PICTURE_RESULT - это самоопределяемая константа. Значение, которое вы передаете startActivityResult() как requestCode, будет тем же значением, которое передается onActivityResult(), когда ваше намерение выполняется, чтобы вы знали, что Intent возвращает результат. – jcmcbeth

ответ

23

Если вы хотите вернуть изображение в полную славу, перейдите в uri к Intent в дополнение к EXTRA_OUTPUT. Если вы в порядке с небольшим растровым рисунком (и вы должны быть), просто назовите это намерение как обычно.

Теперь у вас есть два варианта, имеет дело с Ури образом, который возвращается в EXTRA_OUTPUT дополнительный, или сделать следующее в вашем методе onActivityResult:

if (requestCode == PICTURE_RESULT) // 
      if (resultCode == Activity.RESULT_OK) { 
       // Display image received on the view 
       Bundle b = data.getExtras(); // Kept as a Bundle to check for other things in my actual code 
       Bitmap pic = (Bitmap) b.get("data"); 

       if (pic != null) { // Display your image in an ImageView in your layout (if you want to test it) 
        pictureHolder = (ImageView) this.findViewById(R.id.IMAGE); 
        pictureHolder.setImageBitmap(pic); 
        pictureHolder.invalidate(); 
       } 
      } 
      else if (resultCode == Activity.RESULT_CANCELED) {...} 
    } 

И там вы идете!

+2

спасибо, что это помогло мне. Так много других руководств объясняли, как реализовать функциональность камеры с нуля, а не просто поднимать «ActivityForResult» и управлять работой камеры по умолчанию! – wired00

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