2015-08-29 3 views
0

Я использую следующие коды, чтобы сделать снимок. Символьная фотография будет сохранена, но установка URI или Bitmap ничего не отображает. Как я могу решить эту проблему?Настройка растрового изображения ImageView ничего не показывает

Примечание: Следующие коды - это некоторые методы и переопределенный метод.

public static void takePicture(Activity activity) { 
     Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     if (takePictureIntent.resolveActivity(activity.getPackageManager()) != null) { 
      File photoFile = null; 
      try { 
       photoFile = Images.createTempFile(); 
      } catch (IOException e) { 
       Logger.log(activity, e); 
      } 
      if (photoFile != null) { 
       takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
         Uri.fromFile(photoFile)); 
       activity.startActivityForResult(takePictureIntent, Constants.RequestCodes.IMAGE_CAPTURE); 
      } 
     } 
    } 

public static Uri getUriFromFileName(String fileName) { 
     return Uri.fromFile(new File(fileName)); 
    } 

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == Constants.RequestCodes.IMAGE_CAPTURE && resultCode == RESULT_OK) { 
      addViewToContainer(Images.getUriFromFileName(Logged.General 
        .getTempTakePhotoFilePath())); 
     } 
} 

private void addViewToContainer(Uri result) { 
     ImageView imageView = new ImageView(this); 
     Bitmap bitmap = null; 
     Uri uri = result == null ? Images.getUriFromFileName(Logged.General 
       .getTempTakePhotoFilePath()) : result; 
     try { 
      bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext() 
        .getContentResolver(), uri); 
     } catch (IOException e) { 
      Logger.log(this, e); 
     } 

     imageView.setImageBitmap(bitmap); 
     FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LinearLayout.LayoutParams 
       .MATCH_PARENT, 
       LinearLayout.LayoutParams.MATCH_PARENT); 
     imageView.setLayoutParams(params); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
     imageView.setAdjustViewBounds(true); 
     mContainerLayout.removeAllViews(); 
     mContainerLayout.setForeground(null); 
     mContainerLayout.addView(imageView); 
    } 
+1

Сколько мегапикселов это камера? Если камера превышает 8 МП, на вашем телефоне может отсутствовать память, чтобы обработать ее на ImageView. – WisdmLabs

+0

@WisdmLabs Вот именно причина. Благодарю. – Alireza

ответ

0

Привет Попробуйте это .....

private void openCamera() { 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss"); 
    String currentTimeStamp = dateFormat.format(new Date()); 
    f = new File(android.os.Environment.getExternalStorageDirectory(), currentTimeStamp); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
    startActivityForResult(intent, 1); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 1) { 
      try { 
       String click = f.getAbsolutePath(); 


      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

А теперь у получить путь к файлу acptured изображения затем

File imgFile = new File(iv_path); 

      if (imgFile.exists()) { 

       myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
       iv_prpfile.setImageBitmap(myBitmap); 
       iv_back.setImageBitmap(myBitmap); 
      } 

Днем кодирования :-)

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