android - 如何从 Assets 中加载所有图像?

标签 android

我尝试从 assets 文件夹加载图像,但出现 FileNotFoundException

我使用了两种方法:

try {
        AssetManager am = MainActivity.this.getAssets();
        String[] files = am.list("cards");
        InputStream istr = null;
        for (String file : files) {
            Log.d("MyLogs", file);
            istr = am.open(file);
            Drawable d = Drawable.createFromStream(istr, null);
            drawables.add(d);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

并使用Bitmap....同样的问题.... 日志:

08-19 18:51:17.043    5246-5246/com.example.admin.background D/MyLogs﹕ ic_credit_card_black_48dp.png
08-19 18:51:17.043    5246-5246/com.example.admin.background W/System.err﹕ java.io.FileNotFoundException: ic_credit_card_black_48dp.png
08-19 18:51:17.111    5246-5246/com.example.admin.background W/System.err﹕ at android.content.res.AssetManager.openAsset(Native Method)
08-19 18:51:17.111    5246-5246/com.example.admin.background W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:315)
08-19 18:51:17.115    5246-5246/com.example.admin.background W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:289)
08-19 18:51:17.115    5246-5246/com.example.admin.background W/System.err﹕ at com.example.admin.background.MainActivity.onCreate(MainActivity.java:58)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.Activity.performCreate(Activity.java:5104)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:99)
08-19 18:51:17.119    5246-5246/com.example.admin.background W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5041)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-19 18:51:17.123    5246-5246/com.example.admin.background W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)

最佳答案

您忘记包含您的文件夹。这应该有效:

istr = am.open( "cards/" + file );

关于android - 如何从 Assets 中加载所有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103710/

相关文章:

Android UI图像内存问题

带有内部边框的 Android GridView

java - 如何在小米MIUI 8.1上的图库应用中显示图片?

java - ARcore - 如何获取一个节点与另一节点的距离?

android - 如何以字节形式获取 okhttp 存储的缓存大小?

java - X509TrustManager - 未调用 checkServerTrusted - 是否缓存了受信任的服务器证书或是否有获取证书链的方法?

android - 如何在android sdk中从图库中获取图像并将其显示到屏幕上

android - 为什么安卓:uiOptions ="splitActionBarWhenNarrow" not working with device

android - 如何在运行时从 Assets 文件夹加载 JAR

java - ViewPager2 与 RecyclerView 无法正确显示