2017-04-22 5 views
0

写真を撮ってからimageViewに表示するアプリがありますが、問題はAndroid 1または7.1.1にあります。他の携帯電話は完全に動作しています(Samsung S7 Edge Nougat 7.0.0、Nexus 5X Marshmallow 6.0.0でも動作します)。注:7.1.1ではクラッシュしません。画面上に画像が表示されます。ImageView.setImageBitmap(bla)関数がAndroid One Nougat 7.1.1で動作しない

コードサンプル写真撮影後:

if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) { 
      // Show the thumbnail on ImageView 
      Uri imageUri = Uri.parse(mCurrentPhotoPath); 
      File file = new File(imageUri.getPath()); 
      try { 
       InputStream ims = new FileInputStream(file); 
       binding.ivPhoto.setImageBitmap(BitmapFactory.decodeStream(ims)); 
      } catch (FileNotFoundException e) { 
       return; 
      } 
     } 

答えて

0

を、私は問題を発見し、問題は、私はディレクトリにファイルを保存しようとしていたときに、それは外部ドライブにディレクトリを見つけることができなかったということです、解決策は、ありますそのようなディレクトリがない場合は、新しいディレクトリを作成する必要があります。

private File createImageFile() throws IOException { 
    // Create an image file name 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String path = Environment.getExternalStorageDirectory() + "/" + "AdoptPet/"; 
    String imageFileName = "JPEG_" + timeStamp + "_"; 
    File storageDir = new File(Environment.getExternalStoragePublicDirectory(
      path), "Camera"); 
    if (!storageDir.exists()) { 
     storageDir.mkdirs(); 
    } 

    File image = File.createTempFile(
      imageFileName, /* prefix */ 
      ".jpg",   /* suffix */ 
      storageDir  /* directory */ 
    ); 

    // Save a file: path for use with ACTION_VIEW intents 
    mCurrentPhotoPath = "file:" + image.getAbsolutePath(); 
    return image; 
} 
関連する問題