如果要使用文件名,则不能将它们放在可绘制文件夹中。您可以做到这一点的唯一方法是将图像放在资产文件夹中。如果您没有assets/
文件夹,则必须在主项目中创建一个。它应该与您的 、 和 文件夹在同一个gen/
分支res/
中src/
。
你可以在你的资产文件夹中拥有任何你想要的文件结构。例如,您可以将图像放在assets/images/
文件夹中。声音文件可以放在一个assets/sounds/
文件夹中。您可以像这样访问图像:
public Bitmap getBitmap(Context ctx, String pathNameRelativeToAssetsFolder) {
InputStream bitmapIs = null;
Bitmap bmp = null;
try {
bitmapIs = ctx.getAssets().open(pathNameRelativeToAssetsFolder);
bmp = BitmapFactory.decodeStream(bitmapIs);
} catch (IOException e) {
// Error reading the file
e.printStackTrace();
if(bmp != null) {
bmp.recycle();
bmp = null
}
} finally {
if(bitmapIs != null) {
bitmapIs.close();
}
}
return bmp;
}
正如变量名所暗示的,路径名应该是相对于assets/
文件夹的。因此,如果您将图像直接放在文件夹中,那么它就是imageName.png
. 如果它在子文件夹中,那么它是subfolder/imageName.png
.
注意:Android 不会从 assets 文件夹中的密度文件夹中进行选择。它按原样解码图像。屏幕密度和分辨率的任何进一步调整都必须由您完成。
从android中的资产文件夹打开文件