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

Android在运行时在哪里查找资源文件?,android,Android,我正在尝试打开位于android studio项目@res/drawable/conan_obrian.png中的文件。但是,引发了java.io.FileNotFoundException。我尝试了不同的路径名组合,但没有结果 此代码段正在引发异常: InputStream is; byte[] buffer = new byte[0]; try { final AssetManager assetMgr = context.getResources()

我正在尝试打开位于android studio项目@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());

如果您有一个
assets/drawable
文件夹,那么您的代码将是正确的,但您正在尝试加载一个资源,因此这将是
R.drawable.conan\u obrian

例如,您可以在ImageView上使用该id设置ResourceDrawable

或者,您可以使用该ID和

Drawable d = getResources().getDrawable(R.drawable.conan_obrian) 

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

您的资产文件夹是否实际包含可绘图文件夹?AS>2.0中是否有默认资产文件夹找不到,据我所知不是。不过,您可以使用文件>新建菜单创建资产文件夹。否则,我想我的答案就是你想要的。不清楚你为什么需要一个字节数组的可能的副本我应该说。。。但是我确实回答了标题中的问题,我没有将.png文件用作布局资源。因此,我认为我不能使用对可绘制对象的引用,例如R.Drawable.conan_obrian。它不在布局文件夹中。。。我没有说
R.layout
是吗?