2016-07-19 12 views
1
anzeigen

Ich habe 20k Bilddateien in einem Ordner in meinem lokalen Speicher, ich muss das Bild von seinem Dateinamen aus dem lokalen Speicher anzeigen. Wie es geht? Ich legte meinen Code hier:Ich kann kein Bild von meinem lokalen Speicher in Android

if (Environment.getExternalStorageState() 
      .equals(Environment.DIRECTORY_PICTURES)) { 
     String filePath = File.separator + "sdcard" + File.separator + "Android" + File.separator + "obb" + File.separator + "convertMp3ToDb" + File.separator + "ldoce6pics" + File.separator + fileName; 
     try { 
      FileInputStream fis = new FileInputStream(filePath); 
      String entry = null; 
      while ((entry = fis.toString()) != null) { 
       if (!entry.toString().isEmpty()) { 
        File Mytemp = File.createTempFile("TCL", "jpg", getContext().getCacheDir()); 
        Mytemp.deleteOnExit(); 
        FileOutputStream fos = new FileOutputStream(Mytemp); 
        for (int c = fis.read(); c != -1; c = fis.read()) { 
         try { 
          fos.write(c); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 
        } 
        fos.close(); 
        FileInputStream MyFile = new FileInputStream(Mytemp); 
        final Bitmap bit = BitmapFactory.decodeStream(MyFile); 
        imageView.setImageBitmap(bit); 

       } 
      } 
      fis.close(); 

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

     } 
    } 
+0

jeder logcat Fehler zu tun? – Nisarg

+0

zeigen Sie Ihre Logcat Log – MobDev

+0

versuchen Sie es mit 1. Verwenden Sie Bildbibliotheken wie Glide (es gibt auch andere, ich bevorzuge gleiten) - für diese Dateipfad von String zu uri 2. Sie können auch Lader für die gleichen in Bitmap – MobDev

Antwort

3
if (Environment.getExternalStorageState() 
      .equals(Environment.DIRECTORY_PICTURES)) { 
     String filePath = File.separator + "sdcard" + File.separator + "Android" + File.separator + "obb" + File.separator + "convertMp3ToDb" + File.separator + "ldoce6pics" + File.separator + fileName; 
     File f = new File(filePath); 
     if(f.exits()){ 

      Bitmap bm = BitmapFactory.decodeFile(f.getAbsolutePath()); 
      imageView.setImageBitmap(bm); 

     }else{ 
      // invalid path 
      } 
    } 
    } 

Aktualisierung Abschnitt:

if (Environment.getExternalStorageState() 
       .equals(Environment.DIRECTORY_PICTURES)) { 
    // this never be true see below image 
} 

enter image description here

Sie haben ähnliche

File file = new File(Environment.getExternalStorageState()+"/Android/obb/convertMp3ToDb/ldoce6pics/"+fileName); 

     if (file.exists()) { 
      // your condition should ne likr this. 
     } 
+0

if (Environment.getExternalStorageState() .equals (Environment.DIRECTORY_PICTURES)) diese Bedingung ist falsch kann ich wissen, was wäre das Problem dann –

+0

meiner Meinung nach tun Sie es falsch? \t if (Environment.getExternalStorageState() .equals (Environment.DIRECTORY_PICTURES) wird nie der Fall sein. –

+0

Dann, wie die internen Speicher Bilder zugreifen –