我正在尝试在" 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);
}
但它不起作用。
答案 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)