Загрузить изображения из папки с ресурсами
У меня есть приложение для 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();
}