在云平台部署中,使用机智云开发者中心的app自动生成服务,并下载app代码包,该代码包基于机智云app开源框生成的,在此基础上,我将app控制页面、详情页面等改成了自己想要的效果,本文主要是记录了我是怎么改的过程,在开发的过程中收获了很多,但还有一个疑问,希望有大神不吝赐教。
一、修改app名字为“鹿居”,并修改logo
1.1 修改app名字
1.2 修改logo,命名和尺寸一样(about_logo 50*50)可不用修改代码:
二、修改启动界面和登录界面的图案2.1 只需要在drawable目录下,修改界面对应的图片即可完成更换图片
2.2 修改登录界面的图案
三、数据监控以及智能控制界面
把需要显示的图片复制到drawable资源文件中
对功能界面重新设计
为提高开发效率,可把数据显示以及按钮的id与源命名一样,可参考本系统布局:
xmlns:app=http://schemas.android.com/apk/res-autoxmlns:tools=http://schemas.android.com/toolsandroid:layout_width=match_parentandroid:layout_height=match_parentandroid:orientation=vertical>
android:layout_width=match_parentandroid:layout_height=match_parentandroid:background=@color/background_colorandroid:fadingedge=verticalandroid:paddingbottom=10dpandroid:paddingtop=20dpandroid:scrollbars=vertical>
android:layout_width=match_parentandroid:layout_height=wrap_content>
android:id=@+id/img_beepandroid:layout_width=80dpandroid:layout_height=80dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_tobottomof=@+id/textview11app:srccompat=@drawable/beep_off />
android:id=@+id/img_warnandroid:layout_width=80dpandroid:layout_height=80dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/textview12app:srccompat=@drawable/warn_no />
android:id=@+id/img_plug1android:layout_width=80dpandroid:layout_height=80dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_toendof=parentapp:layout_constrainthorizontal_bias=0.552app:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_tobottomof=@+id/textview9app:srccompat=@drawable/plug_off />
android:id=@+id/sw_bool_alarmandroid:layout_width=wrap_contentandroid:layout_height=27dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/img_warn />
android:id=@+id/guideline13android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.0 />
android:id=@+id/sw_bool_led_onoffandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/guidelineapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/img_den />
android:id=@+id/sw_bool_relay_2android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/img_plug2 />
android:id=@+id/guideline2android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.32 />
android:id=@+id/sw_bool_beepandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_tobottomof=@+id/img_beep />
android:id=@+id/textview9android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:text=智能插座1android:textcolor=@color/tomatoandroid:textsize=16spapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_totopof=@+id/guideline13 />
android:id=@+id/img_plug2android:layout_width=80dpandroid:layout_height=80dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=4dpandroid:layout_marginright=4dpapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constrainthorizontal_bias=0.56app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/textview10app:srccompat=@drawable/plug_off />
android:id=@+id/textview10android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:text=智能插座2android:textcolor=@color/tomatoandroid:textsize=16spapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/sw_bool_led_onoff />
android:id=@+id/sw_bool_relay_1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/guidelineapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_tobottomof=@+id/img_plug1 />
android:id=@+id/textview12android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:text=室内触动报警android:textcolor=@color/tomatoandroid:textsize=16spapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline2 />
android:id=@+id/guidelineandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_margintop=208dpandroid:layout_marginbottom=735dpandroid:orientation=horizontalapp:layout_constraintbottom_tobottomof=parentapp:layout_constraintguide_percent=0.17app:layout_constrainttop_totopof=parentapp:layout_constraintvertical_bias=0.52 />
android:id=@+id/guideline3android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=verticalapp:layout_constraintguide_percent=0.5 />
android:id=@+id/guideline4android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.48 />
android:id=@+id/guideline16android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.56 />
android:id=@+id/guideline17android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.64 />
android:id=@+id/guideline18android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.72 />
android:id=@+id/guideline14android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.80 />
android:id=@+id/guideline19android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.88 />
android:id=@+id/guideline21android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=1.0 />
android:id=@+id/guideline20android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=1.0 />
android:id=@+id/guideline15android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:orientation=horizontalapp:layout_constraintguide_percent=0.96 />
android:id=@+id/textview3android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:text=智能灯android:textcolor=@color/tomatoandroid:textsize=16spapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constrainthorizontal_bias=0.468app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline13 />
android:id=@+id/textview11android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:text=智能报警器android:textcolor=@color/tomatoandroid:textsize=16spapp:layout_constraintend_toendof=parentapp:layout_constraintstart_tostartof=@+id/guideline3app:layout_constrainttop_tobottomof=@+id/sw_bool_relay_1 />
android:id=@+id/img_denandroid:layout_width=80dpandroid:layout_height=80dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=4dpandroid:layout_marginright=4dpapp:layout_constraintend_tostartof=@+id/guideline3app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/textview3app:srccompat=@drawable/den_off />
android:id=@+id/imageviewandroid:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=16dpandroid:layout_marginleft=16dpandroid:layout_margintop=12dpapp:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline4app:srccompat=@drawable/smoke />
android:id=@+id/sp_enum_smokeandroid:layout_width=209dpandroid:layout_height=41dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=20dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:layout_marginbottom=8dpandroid:layout_alignparentright=trueandroid:entries=@array/enum_smokeapp:layout_constraintbottom_totopof=@+id/guideline16app:layout_constraintend_toendof=parentapp:layout_constrainthorizontal_bias=0.421app:layout_constraintstart_toendof=@+id/imageviewapp:layout_constrainttop_totopof=@+id/guideline4app:layout_constraintvertical_bias=0.0 />
android:id=@+id/imageview11android:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=8dpandroid:layout_marginleft=16dpandroid:layout_margintop=8dpapp:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline16app:srccompat=@drawable/move />
android:id=@+id/sp_enum_move_testandroid:layout_width=209dpandroid:layout_height=41dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginend=8dpandroid:layout_marginright=8dpandroid:layout_marginbottom=8dpandroid:layout_alignparentright=trueandroid:entries=@array/enum_move_testapp:layout_constraintbottom_totopof=@+id/guideline17app:layout_constraintend_toendof=parentapp:layout_constrainthorizontal_bias=0.362app:layout_constraintstart_toendof=@+id/imageview11app:layout_constrainttop_totopof=@+id/guideline16app:layout_constraintvertical_bias=0.123 />
android:id=@+id/imageview5android:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=8dpandroid:layout_marginleft=16dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/guideline18app:layout_constraintstart_tostartof=parentapp:srccompat=@drawable/tem />
android:id=@+id/tv_data_temandroid:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=80dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:textsize=30spapp:layout_constraintbottom_totopof=@+id/guideline18app:layout_constraintstart_toendof=@+id/imageview5app:layout_constrainttop_totopof=@+id/guideline17 />
android:id=@+id/textview6android:layout_width=72dpandroid:layout_height=41dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:text=℃android:textcolor=@color/unbindandroid:textsize=25spapp:layout_constraintbottom_totopof=@+id/guideline18app:layout_constraintstart_toendof=@+id/tv_data_temapp:layout_constrainttop_totopof=@+id/guideline17 />
android:id=@+id/imageview6android:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=8dpandroid:layout_marginleft=16dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/guideline14app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline18app:srccompat=@drawable/hum />
android:id=@+id/tv_data_humandroid:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=80dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:textsize=30spapp:layout_constraintbottom_totopof=@+id/guideline14app:layout_constraintstart_toendof=@+id/imageview6app:layout_constrainttop_totopof=@+id/guideline18 />
android:id=@+id/textview7android:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:text=%android:textcolor=@color/alert_blueandroid:textsize=25spapp:layout_constraintbottom_totopof=@+id/guideline14app:layout_constraintstart_toendof=@+id/tv_data_humapp:layout_constrainttop_totopof=@+id/guideline18 />
android:id=@+id/imageview7android:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=8dpandroid:layout_marginleft=16dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/imageview9app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_tobottomof=@+id/imageview6app:srccompat=@drawable/lux />
android:id=@+id/tv_data_lightandroid:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=80dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:textsize=30spapp:layout_constraintbottom_totopof=@+id/guideline19app:layout_constraintstart_toendof=@+id/imageview7app:layout_constrainttop_totopof=@+id/guideline14 />
android:id=@+id/textview8android:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=8dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:text=luxandroid:textcolor=@color/yellowandroid:textsize=25spapp:layout_constraintbottom_totopof=@+id/guideline19app:layout_constraintstart_toendof=@+id/tv_data_light
app:layout_constrainttop_totopof=@+id/guideline14 />
android:id=@+id/imageview9android:layout_width=60dpandroid:layout_height=60dpandroid:layout_marginstart=16dpandroid:layout_marginleft=16dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpapp:layout_constraintbottom_totopof=@+id/guideline15app:layout_constraintstart_tostartof=parentapp:layout_constrainttop_totopof=@+id/guideline19app:srccompat=@drawable/fire />
android:id=@+id/tv_data_fireandroid:layout_width=72dpandroid:layout_height=40dpandroid:layout_marginstart=8dpandroid:layout_marginleft=80dpandroid:layout_margintop=8dpandroid:layout_marginbottom=8dpandroid:textsize=30spapp:layout_constraintbottom_totopof=@+id/guideline15app:layout_constraintstart_toendof=@+id/imageview9app:layout_constrainttop_totopof=@+id/guideline19 />
效果图如下图:
四、实现智能控制图片的逻辑切换
1. 定义图片变量
//private imageview mimgmonitor;private imageview mimgplug1;private imageview mimgden;private imageview mimgplug2;private imageview mimgbeep;private imageview mimgwarn;
2. 绑定图片按键id
mimgplug1 = (imageview)findviewbyid(r.id.img_plug1);mimgden =(imageview) findviewbyid(r.id.img_den);mimgplug2 =(imageview) findviewbyid(r.id.img_plug2);mimgbeep =(imageview) findviewbyid(r.id.img_beep);mimgwarn =(imageview) findviewbyid(r.id.img_warn);
3. 添加按键标志位监控开关的状态
@overridepublic void onclick(view v) {switch (v.getid()) {case r.id.sw_bool_led_onoff: sendcommand(key_led_onoff, sw_bool_led_onoff.ischecked()); isimgled = ((isimgled == false)?true:false);break;case r.id.sw_bool_relay_1: sendcommand(key_relay_1, sw_bool_relay_1.ischecked()); isimgplug1 = ((isimgplug1 == false)?true:false);break;case r.id.sw_bool_relay_2: sendcommand(key_relay_2, sw_bool_relay_2.ischecked()); isimgplug2 = ((isimgplug2 == false)?true:false);break;case r.id.sw_bool_beep: sendcommand(key_beep, sw_bool_beep.ischecked()); isimgbeep = ((isimgbeep == false)?true:false);break;default:break; }}
4. 切换图片显示,更新ui界面
//切换图片if(isimgled){ mimgden.setimageresource(r.drawable.den_on); }else { mimgden.setimageresource(r.drawable.den_off); }
if(isimgplug1){ mimgplug1.setimageresource(r.drawable.plug_on); }else { mimgplug1.setimageresource(r.drawable.plug_off); }
if(isimgplug2){ mimgplug2.setimageresource(r.drawable.plug_on); }else { mimgplug2.setimageresource(r.drawable.plug_off); }
if(isimgbeep){ mimgbeep.setimageresource(r.drawable.beep_on); }else { mimgbeep.setimageresource(r.drawable.beep_off); }
//报警灯报警if(data_alarm){ mimgwarn.setimageresource(r.drawable.warn_yes); }else { mimgwarn.setimageresource(r.drawable.warn_no); }}
注意:把控件id和图片的大小和命名与源框架保持一致,提高开发效率。
本来是把监控界面和智能控制放到两个不同的界面显示的,点击切换界面后,app会闪退sdk显示未启动,最终只能通过scrollview下拉把数据监控和智能控制展示在同一个界面上,有大神有解决方案,望赐教!
原文地址:https://blog.csdn.net/a6662580/category_11596658.html
什么是芯片的IO电路?IO电路设计的难点或关键点是什么?
医疗和健康相关的可穿戴设备会占据整个穿戴市场的大半
固态硅光电倍增管(SiPM)技术新突破
伺服控制器提升机器人自动化水平
菜鸟首个物联网机器人分拨中心在南京启动
“鹿居”APP开发:基于Arduino与机智云的家居环境远程系统设计
中国联通正紧紧把握5G规模发展的关键时机筑基“十四五”
LoRa®创建更智能且具有精确线路故障检测功能的电网
研究发现机器人和自动化有助于供应链行业变革
指令系统实例分析
NCP1651组成的90W通用输入单级PFC反激式变换器电路
集成电路芯片封装工艺流程
中国人寿携国内领先VR品牌Pico 发布Pico Neo VR一体机
手把手教你在windows7上安装tensorflow-gpu开发环境
边缘智能传感可实现更智能的自主机器人
土壤养分检测仪真的有用吗?
纵观两会上的人工智能提案,看李彦宏/马化腾/杨元庆都说了什么?
4525DO-DS5AI001DP压力传感器在新风机系统监测的应用
USB扩展串口方案在移动终端功能扩展中的应用
基于BISS0001的防盗报警电路设计