Android assetManager - PullRequest
       12

Android assetManager

22 голосов
/ 14 декабря 2011

Мне нужно получить абсолютный путь к папке в активах. Примерно так: sd-card:

final String sdDir = Environment.getExternalStorageDirectory() + "Files";

Что я делаю неправильно?

enter image description here

Сначала я пытаюсь найти путь (в зеленом прямоугольнике) таким образом, но я всегда получаю "Ложь". Затем я комментирую этот блок и пытаюсь получить путь от getAssets (). List (); Но я получаю 3 папки, которые вижу впервые.

Я хочу сделать массив таким "зеленым", но мне нужно использовать файлы из ресурсов:

Смотрите изображение

Помогите мне получить абсолютный путь к моей папке Files.

Ответы [ 2 ]

17 голосов
/ 14 декабря 2011

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

  • Если вы просто пытаетесьчтобы получить список того, что находится в ваших активах, затем используйте getAssets().list("Files").(Вы должны использовать подкаталог из-за this ).

  • Если вы пытаетесь получить абсолютный путь к каталогу ваших активов(или любой подкаталог), вы не можете.Все, что находится в каталоге активов, находится в APK.Это не во внешнем хранилище, как на SD-карте.

  • Если вы пытаетесь открыть файлы в каталоге ресурсов, используйте AssetManager.open(filename), чтобы получить InputStream.Здесь имя файла должно быть относительным путем от каталога ресурсов.


EDIT

Я не уверен, что вы подразумеваете под«массивный», но если вы хотите загрузить файл black.png из ресурсов вместо SD-карты, напишите это:

// must be called from Activity method, such as onCreate()
AssetManager assetMgr = this.getAssets();
mColors = new Bitmap[] {
    BitmapFactory.decodeStream(assetMgr.open("black.png"));
    // and the rest
};
1 голос
/ 14 декабря 2011

Активы хранятся в файле APK, поэтому нет абсолютного пути, который может использовать ваше приложение.Но я бы посоветовал взглянуть на файл: /// android_asset.Это может соответствовать вашим потребностям. Вот хороший пример о том, как отобразить актив в WebView.

...