android 和风图标字体移植显示墨迹天气图标

news/2025/2/12 8:54:36/

android studio版本:21.2.1

例程:newareaautov1

和风天气字体图标使用方法见:

android 显示和风天气字体图标_kim5659的博客-CSDN博客_qweather-icons

之前做了个全自动获取天气的app,用的是墨迹的接口(实际是科大讯飞再接入墨迹的数据)。

http://autodev.openspeech.cn/csp/api/v2.1/weather?openId=aiuicus&clientType=android&sign=android&city=深圳&latitude=" + lat + "&longitude=" + lon + "&needMoreData=true&pageNo=1&pageSize=3

(经测试,上面地址获取天气的方法,天气只显示白天的图标,晚上图标也是白天的,夜间多云不会显示月亮还是太阳,不过问题不大,不影响使用。2022.12.14)

可以获取到天气并正常显示,但没有天气图标,看起来不爽,但网上关于墨迹的资料很少,更别说关于天气图标的事了。我看了一下获取的墨迹的json数据,与官方的又不太一样,官方的有icon字段,但上面地址获取的数据没有。但有一个weatherType字段,我高度怀疑它就是天气图标代码。但要怎么证明它就是也是花了不少时间。我到阿里云上0元购买了墨迹天气服务。下载了墨迹接口文档,里面刚好有“天气图标对照表”刚好是我需要的。

打开之后这样:

 这个正是我需要的,而且里面也有图标png文件,

 如果会用png文件显示图标的,直接就可以用了。但我不会,而且我还是喜欢字体文件多些,虽然不太好看。但墨迹好像不提供字体文件,也就用不了,只好把和风的移植过来。其实只要找到对应关系就行了。费点时间而已,经过几个小时的对照,做出了对照表,并实验成功。

对照表大致这样:

 其实墨迹的图标要比和风的少很多,只有30个图标(白天晚上一共),而且有些虽然是白天晚上不同的代码,但图标还是一个。

把它做成json文件后这样:

String tubiao="{" +"'0':'','30':'','2':''," +"'1':'','31':'','3':'','33':''," +"'19':'','9':'','10':''," +"'5':'','7':'','8':''," +"'16':'','17':'','6':''," +"'13':'','34':'','14':''," +"'18':'','32':'','15':''," +"'45':'','46':'','29':'','35':''," +"'20':'','36':'','4':''}" ;

'0':'&#xF101';  0表示的是天气图标代码,&#xF101是天气图标字体,至于为什么这样写不也不知道,当初也研究了很久。因为墨迹用的是一个字段存放天气图标代码,不像和风分为白天(iconday)和晚上(iconnight)两个,所以所有天所图标代码放一起就行了,而和风要判断当前是白天还是晚上,要找不同的图标,这点来讲,墨迹更方便科学一点。

解码及显示代码如下:

            try {JSONObject jsonObjectIcon = new JSONObject(tubiao);String Night=jsonObjectIcon.getString(weathertype);icon.setText(Html.fromHtml(Night));} catch (Exception e) {icon.setText(Html.fromHtml(""));//如果未找到则显示N/A}

要提到一点,weatherType,在json里面是数型,要进行转换,否则找不到数据。

int weathertype0=jsonObject0.getInt("weatherType");
String weathertype=Integer.toString(weathertype0);

完成后这样:

 这个界面就跟和风的一样了,但这个接口能用多久不知道,所以稳定还是要和风。


http://www.ppmy.cn/news/3705.html

相关文章

2022-12-15 c++总结

文章目录c学习之路(总结篇)持续更新基本概念理解关于.h .hpp .cpp的理解namespace和#ifdef的理解封装成dll和lib区别stdafx.h和stdafx.cpp全局变量global和静态变量static区别main函数的参数argc,argv类型含义理解符号变量const和define枚举类…

为什么感觉现在很少有黑客了?

有一个词语,人人不是它,却人人都提及它,他就是:黑客! 黑客,这个我们从小就接触的工种,总是衣服全身黑衣、眼戴墨镜、冷酷无情、超级厉害的形象,关键是,只要应用崩了/数据…

【笔记】计算机组成原理复习重点——篇三

计算机组成原理复习重点笔记 第二篇 计算机系统的硬件结构 第3章 系统总线第4章 存储器第5章 输入输出系统 第3章 系统总线 3.1 总线的基本概念 一、为什么要用总线 计算机的各个系统功能部件连在一起才能协同工作,部件之间不可能采用全互联形式&…

【C语言程序设计】实验 11

目录 1. 验证哥德巴赫猜想 2. 递归求最大公约数 3. 进制转换 4. 各位数的乘积大于各位数的和 5. 含3,5,7中数字 1. 验证哥德巴赫猜想 【问题描述】验证哥德巴赫猜想:任何一个大于5的偶数均可表示为两个素数之和。验证6~1…

java计算机毕业设计ssm气象百事通系统-天气预报系统

项目介绍 本气象百事通系统是针对目前仓库的实际需求,从实际工作出发,对过去的天气系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。 本系统结合计算机系统的结构、概念、模型、…

vtkitkvs2017

一、编译安装InsightToolkit-5.2.1 下载对应版本库,创建文件夹:创建ITKlib:Bin,Build,Source Bin:后续VS2017编译的文件路径; Build:cmake编译后的文件路径; Source&…

策略模式(State)

参考: 策略设计模式 (refactoringguru.cn) [5. 策略模式 — Graphic Design Patterns (design-patterns.readthedocs.io)](https://design-patterns.readthedocs.io/zh_CN/latest/behavioral_patterns/state.html) [design-patterns-cpp/Strategy.cpp at master …

熹乐科技范维肖CC:基于开源 YoMo 框架构建“全球同服”的 Realtime Metaverse Application

前言 在「RTE2022 实时互联网大会」中,熹乐科技创始人 & CEO 范维肖CC 以《基于开源 YoMo 框架构建“全球同服”的 Realtime Metaverse Application》为题进行了主题演讲。 本文内容基于演讲内容进行整理,为方便阅读略有删改。 大家好,…