1、需求
通过app到canwifi到控制模块(硬件)。
app到canwifi通过wifi连接,canwifi到控制模块通过can信号通信,这里主要负责app部分,app要求可以主动和canwifi建立连接,然后通过app界面的按钮控制控制模式做出相应的功能。
2、遇到的问题总结
2.1 开发环境问题
1、Error while waiting for device: The emulator process for AVD Pixel_XL_API_29 was killed.
解决方法参考:
添加链接描述
2、GnssHAL_GnssInterface: gnssSvStatusCb: a: input svInfo.flags is XX
解决方法参考:
添加链接描述
2.2 具体实现问题
1、如何实现点击button时自动切换背景图片?
解决方法参考:
添加链接描述
我采用的是通过xml配置button选中和不选中时的背景图片。
2、xml中配置图片的角度
1、android:rotation:这个属性可以让图片绕着中心点旋转指定的角度。例如,将图片旋转90度可以使用以下代码:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_image"
android:rotation="90"/>
2、android:scaleX和android:scaleY:这两个属性可以让图片在水平和垂直方向上缩放。例如,将图片在水平方向上缩小一半可以使用以下代码:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_image"
android:scaleX="0.5"/>
3、fragment加载遇到一个问题
一个Acitivity,三个fagment,要求默认显示fragment1,点击按钮1,可以切换到fragment2,但是实际效果,显示fragment1时,点击按钮1,fragment2虽然也显示出来了,但是fragment1仍然在fragment2下面,界面看着很混乱。
直接原因:在Acitivity的布局文件中,组件fragment layout指定默认显示的fragment。
怎么解决呢?
答:初始化的时候指定fragment view显示在acitvity布局的fragment layout上面。
根本原因:fragment分为动态加载和静态加载,静态添加的方式缺点:一旦添加就不能在运行时删除。因为不能在运行时删除,所以默认的fragment界面就一直存在了。
4、怎么隐藏app的状态栏
清单文件中设置 Activity 主题背景。一般修改之后,button自带的点击效果也没有了。
参考:添加链接描述
5、单击btn之后切换背景,且背景一直保持,再点击别的btn之后,原来的btn变回原来的背景
实现参考的是:
添加链接描述
6、 imagebutton注意事项
需要注意的是:在ImageButton中,如果使用XML配置文件来设置图片按下的效果的话,就不要再指定它的android:src=""属性值了,否则图片的按下效果就出不来
7、如何解决btn控件英文字母默认大写?
期待显示消息英文字母,但是显示的是大写。
在button控件添加:android:textAllCaps=“false”
8、state_pressed没有效果解决方案
ImageView / Text 使用 android:state_pressed 没有效果的处理方法:
android:state_pressed 实现按压效果,的时候没有作用
处理方法就是在xml 或者java 代码给图片设置 android:clickable=“true”
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:clickable="true"
android:src="@drawable/img_selector_bg" />
9、如何保存fragment状态
防止从fragment1切为fragment2时再切回为fragment1时,此时fragment1恢复默认显示,不显示最新状态。
参考:添加链接描述
重写onSaveInstanceState(),保存Fragment实例的数据,并可在onCreate里面恢复数据。
10、切换语言时,activity中资源被回收,导致页面fragment错乱
场景:显示fragment2时,切换系统语言,再回到app页面,发现此时app的页面不再是fragment2.
参考:添加链接描述
添加链接描述
添加链接描述
添加链接描述
11、如何实现长按连续执行单击效果?
12、ImageView注意事项
ImageView设置了点击事件监听后,setClickable()就无效.
参考:添加链接描述