2014-09-03 2 views
0

Я пытаюсь использовать следующий код, чтобы сделать снимок с камеры и отобразить его в задаче ImageViewандроид отображения изображения в ImageView с камеры

public void takepic(View view) { 

    String timeStamp = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss").format(new Date()); 
    String imageFileName = timeStamp + ".jpg"; 
    TextView detail = (TextView)findViewById(R.id.textView1); 
    detail.setText(imageFileName); 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
     File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
      String name = imageFileName; 


      File file = new File(path, name); 
      outputFileUri = Uri.fromFile(file); 
      intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
      startActivityForResult(intent, TAKE_PICTURE); 


} 

static final int REQUEST_IMAGE_CAPTURE = 1; 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    switch(requestCode) { 

    case 3: 
     if (resultCode == RESULT_OK){ 

       File imgFile = new File(outputFileUri.toString()); 

       TextView detail = (TextView)findViewById(R.id.textView1); 
       detail.setText(imgFile.toString()); 

      if(imgFile.exists()){ 

       Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 

       ImageView myImage = (ImageView) findViewById(R.id.mImageView); 
       myImage.setImageBitmap(myBitmap); 

      } 
      else{ 
       Toast.makeText(getBaseContext(), "Doesnt Exist", Toast.LENGTH_LONG).show(); 

      } 
     }}} 

является его не отображает картину

It принимает изображение, дает ему имя файла и сохраняет его в каталоге изображений.

, когда он попадает в onActivityResult outputFileUri.toString() дает "файл: /storage/emulated/0/Pictures/03-09-2014-06-53-04.jpg" после

, когда я просматриваю каталог фотографий картина там и написано правильно

, но когда он идет к imgFile.exists, если заявление он говорит, что не существует и тосты еще тост

Любые идеи, в которых я ошибаюсь?

любая помощь оценили

Марк

+0

Взгляните http://stackoverflow.com/questions/5991319/capture-image-from-camera-and-display-in-activity –

+0

Ваш 'data' будет уже содержат изображение. Поэтому просто попробуйте «Растровое изображение» (Bitmap) data.getExtras(). Get («data»); imageView.setImageBitmap (фото); ' –

ответ

0

использовать этот код:

if(imgFile!=null){ 


Bitmap myBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imgFile.toString()); 
ImageView myImage = (ImageView) findViewById(R.id.mImageView); 
       myImage.setImageBitmap(myBitmap); 

} 
+0

Я пробовал это, но получаю сообщение об ошибке в строке getbitmap:« Метод getBitmap (ContentResolver, Uri) в типе MediaStore.Images.Media не применим для аргументов (ContentResolver, String) « – user3422687

+0

Спасибо, я выяснил, чего не хватает, мне нужно было добавить this.imageView = (ImageView) this.findViewById (R.id.mImageView); – user3422687

0

onActivityResult В, если ваш случай RESULT_OK, ваш параметр data бы уже имеющих захваченный битовый массив.

Таким образом, вы можете попробовать это:

Bitmap photo = (Bitmap) data.getExtras().get("data"); 
imageView.setImageBitmap(photo); 

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

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