Android在运行时查找资源文件在哪里?

时间:2016-07-30 02:21:31

标签: android

我正在尝试打开位于我的android工作室项目@ res / drawable / conan_obrian.png中的文件。但是,抛出了java.io.FileNotFoundException。我尝试过不同的路径名组合而没有结果。

此代码段抛出异常:

    InputStream is;
    byte[] buffer = new byte[0];
    try {
        final AssetManager assetMgr = context.getResources().getAssets();
        is = assetMgr.open("drawable/conan_obrian.png");
        buffer = new byte[is.available()];
        is.read(buffer);
    } catch (IOException e) {
        e.printStackTrace();
    }
    serverAPI.register(userName, Base64.encodeToString(buffer,Base64.DEFAULT).trim(), myCrypto.getPublicKeyString());

My project's file tree structure

1 个答案:

答案 0 :(得分:3)

如果您有assets/drawable文件夹,但是您尝试加载资源,那么您的代码将是正确的,因此R.drawable.conan_obrian

例如,您可以在ImageView上将该ID用于setResourceDrawable

或者您可以使用

使用该ID获取Drawable对象
Drawable d = getResources().getDrawable(R.drawable.conan_obrian) 

res/目录下的任何内容都会加载到R.java文件中的长整数列表中。