获取src / main / logo中的图像文件路径

时间:2018-03-20 11:33:19

标签: android

我正在尝试在" logo"中组织大约50张图片。文件夹,而不是" drawable",但我不知道如何获取文件夹的基本路径。

我试过了:

String path = "src/main/logo/ataturk.png";
File imgFile = new File(path);
if (imgFile.exists()) {
    ImageView imgLogo = myView.findViewById(R.id.imageView_logo);
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    imgLogo.setImageBitmap(myBitmap);
}

但它不起作用。

1 个答案:

答案 0 :(得分:0)

您无法访问包文件夹下的文件。所以把它们放在资产文件夹之下; /src/main/assets/logo/SUB_DIR/FILENAME.png

然后您可以访问getContext().getResources().getAssets().open('logo/SUB_DIR/FILENAME.png')

要检查资产文件夹中是否存在文件,请使用以下代码;

private boolean fileExists(String folder, String fileName) {

    try {
        String[] files = getResources().getAssets().list(folder);

        for(String file : files) {
            if(file.equals(fileName)) {
                return true;
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

    return false;
}

按如下方式调用该方法

img = (ImageView) findViewById(R.id.imgSDCard);
if(fileExists("logo/sub", "sd_card_enable.png")) {
        // asset folder has file
        try {
            img.setImageDrawable(Drawable.createFromStream(getAssets().open("logo/sub/sd_card_enable.png"), "sd_card_enable.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

将文件复制到资产文件夹,如下图所示; (徽标是DIR,sub是徽标内的DIR)

enter image description here