【问题标题】:To load images from Folder placed in Assets Folder using androidStudio使用 android Studio 从放置在 Assets 文件夹中的文件夹加载图像
【发布时间】:2014-12-27 03:06:26
【问题描述】:
使用 Android Studio。我在 app/main/src 创建了 Asset 文件夹。我将图像粘贴到资产文件夹中,它们很容易访问。但是当我在名为“文件”的资产文件夹中创建另一个文件夹并尝试读取该图像时。它们没有显示。请帮助我阅读位于 assets 文件夹中名为“files”的文件夹中的图像。
ImageView img = (ImageView) findViewById(R.id.img);
AssetManager manager = getAssets();
try {
String[] file = manager.list("Files");
for (int i = 0; i < file.length; i++) {
try {
InputStream imgStream ;
imgStream = manager.open(file[i]);
Bitmap bitmap = BitmapFactory.decodeStream(imgStream);
img.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
标签:
android
android-studio
assets
【解决方案1】:
尝试这样做。将此方法加载到您想使用的任何地方
public void loadDataFromAsset() {
// load image
try {
// get input stream
InputStream ims = getAssets().open("your_image.extension");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
yourImageView.setImageDrawable(d);
}
catch(IOException ex) {
return;
}
}
希望对你有帮助!!!
【解决方案2】:
我知道这是一个迟到的回复,但我正在尝试和你一样......
唯一缺少的是打开函数中的文件路径。此外,它不适用于位图,但适用于可绘制对象。
在下面试试这个,它应该可以工作。 :)
ImageView img = (ImageView) findViewById(R.id.img);
AssetManager manager = getAssets();
try {
String[] file = manager.list("Files");
for (int i = 0; i < file.length; i++) {
try {
InputStream imgStream ;
imgStream = manager.open("Files/" + file[i]);
Drawable d = Drawable.createFromStream(imgStream, null);
im.setImageDrawable(d);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}