Android 仅当条件满足时获取图像

Android 仅当条件满足时获取图像,android,image,drawable,Android,Image,Drawable,我正在向用户显示许多图像,但我需要根据某些条件从drawable文件夹中获取图像。例如,如果用户将其性别设置为“男性”,则应向其显示仅由男性使用的产品图像 xml 我建议您将图像放在资产文件夹中,并按性别命名。例如,wristwatch_-male.png、wristwatch_-male.jpeg等 然后,您可以添加以下代码来检查性别并相应地显示图像: String gender; AssetManager assetMgr = null; Vector<String> files

我正在向用户显示许多图像,但我需要根据某些条件从drawable文件夹中获取图像。例如,如果用户将其性别设置为“男性”,则应向其显示仅由男性使用的产品图像 xml
我建议您将图像放在资产文件夹中,并按性别命名。例如,wristwatch_-male.png、wristwatch_-male.jpeg等

然后,您可以添加以下代码来检查性别并相应地显示图像:

String gender;
AssetManager assetMgr = null;
Vector<String> files = new Vector<String>();
assetMgr = this.getAssets();
String[] allFiles = assetMgr.list("");
if (gender.equalsIgnoreCase("Male"))
{
    for (int i = 0; i < allFiles.length; i++) {
        if (allFiles[i].contains("_male")) {
        files.add(allFiles[i]);
        }
    }
}
if (gender.equalsIgnoreCase("Female"))
{
    for (int i = 0; i < allFiles.length; i++) {
        if (allFiles[i].contains("_female")) {
        files.add(allFiles[i]);
        }
    }
}
for (int i = 0; i < files.size(); i++) {
    //Set image
}
String性别;
AssetManager assetMgr=null;
向量文件=新向量();
assetMgr=this.getAssets();
字符串[]allFiles=assetMgr.list(“”);
if(性别平等信号病例(“男性”))
{
对于(int i=0;i
将每个图像的名称设置为具有前缀(或后缀),表示其为男性或女性

然后,每次尝试获取图像时,检查应用程序的设置(如果用户是男性或女性),并根据结果获取资源

按名称获取图像的示例:

String mDrawableName = "my_image";
String prefix=Settings.isMale()?"male_":"female_";
String newName=prefix+mDrawableName ;
int resId=getResources().getIdentifier(newName, "drawable", getPackageName());
....

请分享一些代码。你有什么问题……你能添加一些代码吗?
  if(condition)
  {
  image_view.getResources().getDrawable(R.drawable.male_img);
  }
String gender;
AssetManager assetMgr = null;
Vector<String> files = new Vector<String>();
assetMgr = this.getAssets();
String[] allFiles = assetMgr.list("");
if (gender.equalsIgnoreCase("Male"))
{
    for (int i = 0; i < allFiles.length; i++) {
        if (allFiles[i].contains("_male")) {
        files.add(allFiles[i]);
        }
    }
}
if (gender.equalsIgnoreCase("Female"))
{
    for (int i = 0; i < allFiles.length; i++) {
        if (allFiles[i].contains("_female")) {
        files.add(allFiles[i]);
        }
    }
}
for (int i = 0; i < files.size(); i++) {
    //Set image
}
String mDrawableName = "my_image";
String prefix=Settings.isMale()?"male_":"female_";
String newName=prefix+mDrawableName ;
int resId=getResources().getIdentifier(newName, "drawable", getPackageName());
....