android - 动态设置 ImageView 的来源

标签 android android-layout android-imageview

我正在尝试根据国家/地区名称在 ImageView 中设置国家/地区标志。

我遵循惯例,国旗图像始终存储在 drawable/flag_country_name

例如;可绘制/flag_india,可绘制/flag_south_africa

到目前为止我写的代码是

imageFlagRight.setImageResource(getFlagResource("India"));

private int getFlagResource(String teamName) {
        if(teamName.equals("India")){
            return R.drawable.flag_india;
        }
        if(teamName.equals("Srilanka")){
            return R.drawable.flag_srilanka;
        }
        if(teamName.equals("New Zealand")){
            return R.drawable.flag_new_zealand;
        }
        if(teamName.equals("Pakistan")){
            return R.drawable.flag_pakistan;
        }
        if(teamName.equals("Srilanka")){
            return R.drawable.flag_srilanka;
        }
        if(teamName.equals("South Africa")){
            return R.drawable.flag_south_africa;
        }
        if(teamName.equals("Austalia")){
            return R.drawable.flag_australia;
        }
        return R.drawable.flag_default;
    }

上面的代码工作正常。

现在我想添加更多的县和旗帜。有什么办法可以减少代码行吗?像 return R.drawable.flag+underscorise(teamName);

最佳答案

String name="flag_" + "india";
public int getFlagResource(Context context, String name) {
   int resId = context.getResources().getIdentifier(name, "drawable", "com.mypackage.namehere");
   return resId;
}

试试这个。

关于android - 动态设置 ImageView 的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576156/

相关文章:

android - Flutter 有哪些原生 Android 或 iOS SDK 不能做到的?

android - 如何在屏幕底部显示小部件android

android - 显示的启动画面 Logo 质量差

java - Android如何为ImageView的自定义部分设置透明度

android - 如何优化要在 GridView 中使用的自定义 ImageView?

android - Android中的Xamarin蓝牙连接失败

javascript - 找不到变量 : navigate

android - TabHost 动态添加标签页

android - 一个简单的图像弹出窗口

java - mfp WL.Client.createSecurityCheckChallengeHandler() 或 WLAuthorizationManager.login() 中登录失败