2017-06-28 4 views
-4

Bild, das von der benutzerdefinierten Kamera ist es nicht Anzeige in der Bildansicht in Samsung S4 in Honor 7 Telefon ist es funktioniert gut.Auch Bild wird in SDKard auch dann auch es speichern wird nicht in der Bildansicht angezeigt.Bild wird nicht angezeigt in Bildansicht

Bild speichern Funktion

File imageFile; 
     // convert byte array into bitmap 
     Bitmap loadedImage = null; 
     loadedImage = BitmapFactory.decodeByteArray(data, 0, 
       data.length); 

     // rotate Image 
     Matrix rotateMatrix = new Matrix(); 
     rotateMatrix.postRotate(rotation); 
     Bitmap rotatedBitmap = Bitmap.createBitmap(loadedImage, 0, 
       0, loadedImage.getWidth(), loadedImage.getHeight(), 
       rotateMatrix, false); 

     String state = Environment.getExternalStorageState(); 
     File folder = null; 
     if (state.contains(Environment.MEDIA_MOUNTED)) { 
      folder = new File(Environment 
        .getExternalStorageDirectory() + "/Image"); 
     } else { 
      folder = new File(Environment 
        .getExternalStorageDirectory() + "/Image"); 
     } 

     boolean success = true; 
     if (!folder.exists()) { 
      success = folder.mkdirs(); 
     } 
     if (success) { 
      java.util.Date date = new java.util.Date(); 
      imageFile = new File(folder.getAbsolutePath() 
        + File.separator 
        + new Timestamp(date.getTime()).toString() 
        + "Icon.jpg"); 

      imageFile.createNewFile(); 
     } else { 
      Toast.makeText(mContext, "Image Not saved", 
        Toast.LENGTH_SHORT).show(); 
      return; 
     } 
     ByteArrayOutputStream ostream = new ByteArrayOutputStream(); 
     // save image into gallery 
     rotatedBitmap.compress(CompressFormat.JPEG, 50, ostream); 

     FileOutputStream fout = new FileOutputStream(imageFile); 
     fout.write(ostream.toByteArray()); 
     fout.close(); 
     ContentValues values = new ContentValues(); 

     values.put(Images.Media.DATE_TAKEN, 
       System.currentTimeMillis()); 
     values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
     values.put(MediaStore.MediaColumns.DATA, 
       imageFile.getAbsolutePath()); 

     mContext.getContentResolver().insert(
       Images.Media.EXTERNAL_CONTENT_URI, values); 

     mImagedata = null; 

     String filepath = imageFile.getAbsolutePath(); 
     pref.saveString(Constant.PrefConstants.KEY_USER_IMAGE_PATH, filepath); 

Anzeige des Bildes

File imgFile = new File(pref.getString(Constant.PrefConstants.KEY_USER_IMAGE_PATH)); 
ivProfileImage.setImageURI(Uri.parse(imgFile.getAbsolutePath())); 

Antwort

0

Für das Bild von der SD-Karte abrufen Add Zeit Erlaubnis d.h laufen, READ_EXTERNAL_STORAGE wenn Android-Version> 23