如何在Android上设置夜间和日间的天气图标

问题描述:

我在制作天气应用程序。整个应用程序已完成,除夜光图标外,一切正常。我为这一天设置了图标。但我没怎么上,检查时,如果那天发现SUN &如果晚上它应该显示MOON如何在Android上设置夜间和日间的天气图标

这里有一个条件设置两种不同的图标是我的代码:

private static String updateWeatherIcon(int condition) { 

    if (condition >= 0 && condition < 300) { 
     return "tstorm1"; 
    } else if (condition >= 300 && condition < 500) { 
     return "light_rain"; 
    } else if (condition >= 500 && condition < 600) { 
     return "shower3"; 
    } else if (condition >= 600 && condition <= 700) { 
     return "snow4"; 
    } else if (condition >= 701 && condition <= 771) { 
     return "fog"; 
    } else if (condition >= 772 && condition < 800) { 
     return "tstorm3"; 
    } else if (condition == 800) { 
     return "sunny"; 
    } else if (condition >= 801 && condition <= 804) { 
     return "cloudy2"; 
    } else if (condition >= 900 && condition <= 902) { 
     return "tstorm3"; 
    } else if (condition == 903) { 
     return "snow5"; 
    } else if (condition == 904) { 
     return "sunny"; 
    } else if (condition >= 905 && condition <= 1000) { 
     return "tstorm3"; 
    } 

    return "dunno"; 
} 

请帮帮我。

+1

如何关系到白天还是晚上你的代码?这只是天气状况。所以你可以请你发布如何得到白天/夜晚btw你不需要做if(condition> = x && condition Eselfar

+0

与天气情况看,它使用该图标,如果天气条件为800,则返回阳光图标。这些条件都在openweather API中。我想要做的是如果条件== 800我想在夜晚返回晴天和月亮图标。那么你能告诉我我该怎么做吗?@Eselfar – Murtaza

+0

你需要知道你在什么时间试图从天气中获得天气。基于此,您可以定义它是白天还是晚上。然后你可以选择适当的图标。不知道时间是由API返回的,否则你可以找到另一种方式来了解它。 – Eselfar

1)天气API不会在夜间返回“晴天”。所以,你可能不需要担心它。

2)OpenWeather API返回图标代码的响应 - “图标”:“04n” 他们在https://openweathermap.org/weather-conditions 上市,您可以使用或模仿一套天气图标。他们白天和夜晚确实有不同的图标。

希望有帮助!

+0

他们在白天,甚至在夜晚都会返回Clear。所以没有办法像那样设置图标。 – Murtaza

+0

通过本文档https://openweathermap.org/current,你不需要检查条件来确定图标。 api会直接为您提供夜晚的图标“04n”和白天的“04d”图标。我已经使用它成功实现了它。 – Suriya

家伙,我发现我的解决方案,谢谢大家

long currentTime = new Date().getTime(); 
      if(currentTime>=sunrise && currentTime<sunset) { 
       return "sunny"; 
      } else { 
       return "nighticon"; 
      }