Intereting Posts
Дублирование фрагментов на транзакции фрагментов Прояснение жизненного цикла приложения для Android Android: Как сделать TextView доступным для редактирования? Android: приложение: transformClassesWithJarMergingForDebug FAILED – ZipException: дублировать запись Что происходит с setScaleX / setScaleY? После обновления сервисов Google Play до 8.4.0 push-уведомлений, отображаемых сами по себе Копирование и вставка Android с помощью TextView Как записывать видео с определенной шириной и высотой на Android-устройстве samsung? Длительное время сборки с sbt android-plugin Библиотека поддержки Android 23.4.0: android.support.v7.widget.TintContextWrapper не может быть перенесена в Activity Отображать push-уведомление в поле предупреждения, когда приложение работает на переднем плане Android SDK на 64-битной Linux-машине Как проверить (цифровую) идеальную для пикселя разработку в Android? К сожалению, Launcher3 перестала работать с ошибкой в ​​андроид-студии? Ошибка при запуске AVD. Файловая система уже составляет 140800 (4k) блоков – ничего не делать

Как получить все файлы из папки с ресурсами

Я пытаюсь получить все изображения в папке с моими ресурсами, используя коды ниже

private List<String> getImage() { /* 设定目前所在路径 */ List<String> it=new ArrayList<String>(); File f=new File("file:///android_asset/"); File[] files=f.listFiles(); Log.d("tag", "读取asset资源"); /* 将所有文件存入ArrayList中 */ for(int i=0;i<files.length;i++) { File file=files[i]; if(getImageFile(file.getPath())) it.add(file.getPath()); } return it; } private boolean getImageFile(String fName) { boolean re; /* 取得扩展名 */ String end=fName.substring(fName.lastIndexOf(".")+1, fName.length()).toLowerCase(); /* 按扩展名的类型决定MimeType */ if(end.equals("jpg")||end.equals("gif")||end.equals("png") ||end.equals("jpeg")||end.equals("bmp")) { re=true; } else { re=false; } return re; } 

Так или иначе я не уверен в этом выражении

 File f=new File("file:///android_asset/"); 

Ну, я знаю, что при чтении файла txt или html-файла из папки с ресурсами вы можете использовать это, но будут ли изображения приняты и это?

Я разрешаю эту проблему, используя код ниже

 private List<String> getImage() throws IOException { AssetManager assetManager = getAssets(); String[] files = assetManager.list("image"); List<String> it=Arrays.asList(files); return it; } 

В случае, если кто-то еще захочет узнать

Solutions Collecting From Web of "Как получить все файлы из папки с ресурсами"

В общем, вы можете использовать AssetManager для управления файлами в папке вашего ресурса. В этой операции вызовите метод getAssets (), чтобы получить экземпляр AssetManager.

EDIT: вы можете использовать AssetManager для чтения изображений следующим образом:

 AssetManager am=this.getAssets(); try { Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif")); chosenImageView.setImageBitmap(bmp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Обратите внимание, что метод BitmapFactory.decodeStream() работает по потоку пользовательского интерфейса по умолчанию, поэтому приложение будет застревать, если изображение слишком велико. В этом случае вы можете изменить образец или начать новый поток, чтобы сделать это.