Загрузить изображения из папки с ресурсами

У меня есть приложение для Android, в котором у меня есть несколько изображений в папке с ресурсами. Теперь я хочу создать массив этих изображений. Теперь моя проблема: - когда наши изображения находятся в drawable, мы можем сделать массив вроде

int x[] = {
    R.drawable.ss,
    R.drawable.aa, R.drawable.sk,
    R.drawable.xx
};

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

Ответы

Ответ 1

Вам нужно прочитать изображение по изображению, как показано ниже:

Вы можете использовать AssetManager, чтобы получить InputStream с помощью метода open(), а затем использовать метод decodeStream() для BitmapFactory для получения растрового изображения.

private Bitmap getBitmapFromAsset(String strName)
    {
        AssetManager assetManager = getAssets();
        InputStream istr = null;
        try {
            istr = assetManager.open(strName);
        } catch (IOException e) {
            e.printStackTrace();
        }
        Bitmap bitmap = BitmapFactory.decodeStream(istr);
        return bitmap;
    }

Ответ 2

Если ваши изображения хранятся в папке с изображениями в каталоге ресурсов, вы можете получить список изображений как способ

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

Ответ 3

 // load image from asset folder 
        try {
            // get input stream
            InputStream ims = getAssets().open("avatar.jpg");
            // load image as Drawable
            Drawable d = Drawable.createFromStream(ims, null);
            // set image to ImageView
            mImage.setImageDrawable(d);
        }
        catch(IOException ex) {
            return;
        }

  or you can create drawable array
    Drawable d []={d};

Ответ 4

У вас есть неправильное значение в отношении ссылок и советов. Вы можете сделать array od "drawables", потому что все drawables имеют собственные идентификаторы в R (например, R.dawable.ss), поэтому вы можете использовать указанное целое число, чтобы получить drawable, если у вас есть правильный контекст.

Другим способом управления файлами, такими как изображения, является анализ. Если вы хотите управлять изображениями с помощью своих идентификаторов, вы должны добавить, что это изображение делает drawables. Другими словами, файлы assests должны управляться как простые файлы в каталоге.

Вы должны получить файлы из активов AssetManager am=this.getAssets();, а затем подготовить файл для чтения/записи. Если у вас есть изображения, вы можете сделать что-то вроде этого:

try {    
    Bitmap bmp=BitmapFactory.decodeStream(am.open("009.gif"));
    imageView.setImageBitmap(bmp);

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