一、效果截图
二、准备工作
首先在机智云自助开发平台(dev.gizwits.com)创建产品并定义数据点。
创建应用
下载应用代码
导入成功之后,是没有红点任何错误提示的,目录结构说明
文件结构说明:
GizOpenSourceModules:组成模块 GosApplication.java // SDK 在此启动 CommonModule // 公共方法类、资源文件读取类 ConfigModule // 设备配置模块,包含 AirLink 及 SoftAP UserModule // 用户模块,包含 用户登录、用户注册、找回密码 DeviceModule // 设备模块,包含 设备列表 ControlModule // 控制模块,包含 控制示例 SettingsModule // 设置模块,包含 设置菜单 及其 包含的子菜单项(关于等) PushModule // 推送模块,包含 百度和极光的推送SDK 集成封装 ThirdAccountModule // 第三方登录模块, 包含 第三方登录(QQ、微信等) view // 自定义控件 utils // 工具类 wxapi // 微信集成包 zxing // 扫描二维码
三、导入第三方库
在工程 app 目录下的 build.gradle 下加入
compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
同时根目录下的 build.gradle 下加入一下,否则拉取不成功; - allprojects {
- repositories {
- jcenter()
- maven { url 'https://jitpack.io' }
- maven {
- url 'https://maven.google.com/'
- name 'Google'
- }
- }
- }
复制代码
在 app --- src --- main --- res ---layout 的 activity_gos_devices_control.xml布局文件修改如下:
预览的效果:
四、修改逻辑代码
温度计、统计折线表初始化在下面2个方法里面,涉及的代码太多了,我就不贴全部代码了!
setChartTemp(); setChartHum();
每当采集数据要更新ui:
- /**
- * Description:根据保存的的数据点的值来更新UI
- */
- protected void updateUI() {
- sw_bool_led_onoff.setChecked(data_led_onoff);
- tv_data_temp.setText("当前温度" + data_temp + "℃");
- tv_data_humi.setText("当前湿度" + data_humi + "%");
- //取2位小数
- float data_temp_show = saveOneBitTwoRound(data_temp);
- //根据ui,温度进度条要加40显示
- mTemperatureView.setProgress(data_temp_show + 40);
- //湿度的中间文字显示
- if (data_humi < 30) {
- mWaveLoadingView.setCurrent((int) data_humi, "干燥");
- mWaveLoadingView.setMaxProgress(100);
- mWaveLoadingView.setWaveColor("#F08B88");
- } else if (data_humi > 30 && data_humi < 60) {
- mWaveLoadingView.setCurrent((int) data_humi, "舒适");
- mWaveLoadingView.setWaveColor("#45C01A");
- } else {
- mWaveLoadingView.setCurrent((int) data_humi, "潮湿");
- mWaveLoadingView.setWaveColor("#5be4ef");
- }
- Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改
- int hour = c.get(Calendar.HOUR_OF_DAY);
- int minute = c.get(Calendar.MINUTE);
- int second = c.get(Calendar.SECOND);
- String timeStr = hour + ":" + minute + ":" + second;
- temperIndex++;
- //每次采集温度加入集合温度数据集合
- dataList.add(new Entry(temperIndex, (float) data_temp, timeStr));
- setTemperData(chart, dataList);
- //每次采集湿度加入集合湿度数据集合
- dataHumList.add(new Entry(temperIndex, (float) data_humi, timeStr));
- setTemperData(chartHum, dataHumList);
- }
复制代码如何修改包名? 在工程 app 目录下的 build.gradle 下修改 applicationId 即可:
如何自定义apk名字输出: 在工程 app 目录下的 build.gradle 下加入: - android.applicationVariants.all { variant ->
- variant.outputs.each { output ->
- output.outputFile = new File(output.outputFile.parent, "DIY数字仪表-" + buildType.name + "-v" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk" );
- }}
复制代码
|