2016-08-01 3 views
0

Я пытаюсь загрузить все изображения из каталога по указанному пути. Использование оператора if для проверки вызванного пути не выдает никакой ошибки, и результат также не отображается. Не хотел бы знать, где я получаю этот код неправильно.Чтение изображений из каталога

public class Edit extends Activity { 

    // File representing the folder that you select using a FileChooser 
    static final File dir = new File("/data/data/faceemoji.alexcz.yourfaceemoji/app_imageDir/"); 

    // array of supported extensions (use a List if you prefer) 
    static final String[] EXTENSIONS = new String[]{ 
      "png" // and other formats you need 
    }; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_edit); 

     LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearlayout); 

     Log.d("loadfilepath", dir.getAbsolutePath()); 
     if (dir.isDirectory()) { // make sure it's a directory 
      System.out.println("yes"); 
      for (File f : dir.listFiles(IMAGE_FILTER)) { 

       Log.d("fak", "file found"); 
       Bitmap myBitmap = BitmapFactory.decodeFile(f.getAbsolutePath()); 
       ImageView myImage = new ImageView(this); 
       myImage.setImageBitmap(myBitmap); 
       linearLayout.addView(myImage); 
      } 
     } 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_edit, menu); 
     return true; 
    } 

    static final FilenameFilter IMAGE_FILTER = new FilenameFilter() { 

     @Override 
     public boolean accept(final File dir, final String name) { 
      for (String ext : EXTENSIONS) { 
       if (name.endsWith("." + ext)) { 
        return (true); 
       } 
      } 
      return (false); 
     } 
    }; 
} 
+0

Проверьте это [ссылка] (HTTP: // WWW. androhub.com/select-and-share-multiple-images/). –

ответ

1

Вы должны использовать Context.getFilesDir() для внутреннего хранения и Environment.getExternalStorageDirectory() для внешнего хранения, для использования этого последнего, который вы должны добавить WRITE_EXTERNAL_STORAGE, если вы хотите записать файлы.

В вашем случае я думаю, вы должны сделать это следующим образом:

static final File dir = new File(Context.getFilesDir()+"/app_imageDir/"); 

Даже thoug поставить журнал, чтобы проверить, что каталог правильно

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