我在Assets文件夹中有一个名为images的子文件夹,其中我存储了我的图像(当然):)事情是我想得到我正在获得的图像的名称,但问题是我是还得到其他未知名称,如:“android-logo-mask.png”,我猜是android的默认图像。有没有办法,我可以跳过这个“Android默认图像”,只获取我的图像的名称?我的计划是将这些名称保存在数据库中,以便将其用作以后在ImageView上显示图像的参考。使用图像名称来显示图像是个好主意吗?如果需要,可以使用以下代码:
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this.getApplicationContext();
ImageHelper i = new ImageHelper();
i.readImages(context);
}
public class ImageHelper {
public ImageHelper(){}
public void readImages(Context context){
AssetManager am = context.getAssets();
try {
String[] getImages = am.list("images");
for(String imgName : getImages){
Log.e("IMAGE NAME----->", imgName);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
提前致谢。
答案 0 :(得分:9)
为“MyImages”之类的图像文件夹使用其他名称。它应该工作正常。
答案 1 :(得分:2)
"images"
应该是"/path/assets/images/image.png"
答案 2 :(得分:2)
非常有趣。即使您没有资产/图像目录,也可以使用:
myImageList = Arrays.asList(getResources().getAssets().list("images"));
你会在结果中看到android-logo-mask.png和android-logo-shine.png。
这让我想知道这些实际图像文件在Android代码中的位置。我根本不知道代码库,但是:
https://android.googlesource.com/platform/frameworks/base/+/master/core/res/assets/images/
在res 下的资产目录中列出这两个。 (与我存储项目资产的资产目录不同,不在res下)。
要求为AssetManagers list
方法(返回数组)提供单个文件的路径,这没有任何意义。方法文档说:
返回给定路径上所有资产的String数组。
这让我想知道列表方法中是否存在错误,或者是否有其他原因设计为在需要资产列表时返回特定系统资产。
以类似的方式,如果我使用:
myAssetList = Arrays.asList(getResources().getAssets().list(""));
我看到“声音”和“webkit”包含在内,它们与我资产的任何现有子目录都不对应。
答案 3 :(得分:1)
如果系统在此“images”文件夹中添加文件,为什么不为您确定只包含文件的图片创建一个新文件夹?