【问题标题】:How to set Weather icons for Night and Day both on Android如何在 Android 上同时设置夜间和白天的天气图标
【发布时间】:2018-02-15 05:15:09
【问题描述】:

我正在制作一个天气应用程序。整个应用程序已完成,除 NIGHT ICONS 外,一切正常。我已经设置了当天的图标。但我不知道如何在一个检查时间的条件下设置两个不同的图标,如果它的白天它显示 SUN,如果它的夜晚它应该显示 MOON

这是我的代码:

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";
}

请帮帮我。

【问题讨论】:

  • 您的代码与白天或黑夜有什么关系?这只是天气状况。那么,您能否发布一下您如何获得白天/黑夜?顺便说一句,您不需要这样做if (condition &gt;= x &amp;&amp; condition &lt; y),因为它是一个 if/else,只有值总是高于先前的条件。所以你可以改用if (condition &lt;= y)
  • 查看天气条件,它使用该图标,例如如果天气条件为 800,它会返回晴天图标。这些条件在 openweather API 中。我想做的是如果条件== 800,我想在白天返回晴天,在晚上返回月亮图标。那么你能告诉我我该怎么做吗?@Eselfar
  • 您需要知道您尝试获取天气所在位置的时间。基于此,您可以定义是白天还是黑夜。然后你可以选择合适的图标。如果 API 返回时间,请不要这样做,否则您可以找到其他方法来了解它。
  • 你能解释一下我如何获得时间并根据时间设置图标吗? @Eselfar

标签: android icons weather


【解决方案1】:

伙计们,我找到了我的解决方案,谢谢大家

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

【讨论】:

    【解决方案2】:

    1) 天气 API 永远不会在夜间返回“晴天”。因此,您可能无需担心。

    2) OpenWeather API 在响应中返回图标代码 - "icon":"04n" 他们在https://openweathermap.org/weather-conditions 中列出了一组天气图标 您可以使用或模仿。它们确实有不同的白天和黑夜图标。

    希望有帮助!

    【讨论】:

    • 他们白天甚至晚上都会返回 Clear。所以没有办法那样设置图标。
    • 通过这个文档openweathermap.org/current,你不需要检查条件来确定图标。 api直接为您提供夜间图标“04n”和白天“04d”图标。我已经使用它成功实现了它。
    【解决方案3】:
    1. openweathermap 本身允许设置昼夜图标。 请参考该链接https://openweathermap.org/weather-conditions

    2. 在响应中,我们得到 iconId,我们可以将这些图标分开......

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 1970-01-01
      • 2019-08-09
      • 2011-06-25
      • 2021-12-27
      • 2018-09-17
      • 1970-01-01
      • 2021-12-01
      • 2020-08-12
      相关资源
      最近更新 更多