开发Android App遇到的问题

本文详细讲述了在Android应用开发过程中遇到的各种问题,包括设备连接问题、GnssHAL_GnssInterface错误、UI交互、fragment管理、状态栏隐藏、资源回收等,并提供了相应的解决方法和代码示例。
摘要由CSDN通过智能技术生成

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()就无效.
参考:添加链接描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值