ImageView条件附加选项(Android Studio)

时间:2018-11-26 02:26:48

标签: java android android-studio

我是android studio的基础入门者,正在开发气象应用程序。我想将图标图像的条件设置为天气条件。

例如:

sun = sun image 
rain = rain image
snow = snow image

我知道开关盒可能有用:

        switch (id) {
        case "Raining":
            icon = "rainIcon";
            break;
        case "Snowing":
            icon = "snowIcon";
            break;
        case "Drizzling":
            icon = "drizzlingIcon";
            break;
        case "Foggy":
            icon = "fogIcon";
            break;
        case "Thunderstorm":
            icon = "thunderIcon;";
            break;
        case "Sunny":
            icon = "sunIcon";
            break;
    }

但是,当我从AsyncTask检索数据并需要在该类中实现图像更改时,我很困惑如何将其实现到代码中,但是那里没有合适的方法来更改ImageView变量。

我了解有一些方法可以在onCreateView方法上实现,但这就是我的代码现在实现的方式

1 个答案:

答案 0 :(得分:0)

我建议创建一个Weathers类型的枚举。

public enum Weathers {

   RAINING(R.drawable.ic_raining),
   SNOWING(R.drawable.ic_snowing);

   private int iconResId;

   private Weathers(int iconResId) {
      this.iconResId = iconResId;
   }
   public int getIconResId() {
      return iconResId;
   }
}

这可能会减少条件(上面的开关案例)。要显示到图像视图中,请使用Weathers.valuesOf(String)(其中String大写)获取Weather实例的实例。

Weathers snowing = Weathers.valueOf("Snowing".toUpperCase(Locale.ENGLISH));
imageViewIcon.setImageResource(snowing.getIconResId());