- 博客(11)
- 收藏
- 关注
原创 Android 弹窗弹出时隐藏底部导航栏
原理为弹窗设置不可获取焦点,在弹窗弹出后去除不可获取焦点标签,使弹出可以点击额外区域取消,且不会发生点击穿透,然后兼容部分机型,在弹出后调用hideNavigationBar隐藏状态栏。使用方法是在Dialog或者FragmentDialog的onCreate方法中直接调用initHideNavigationBarConfig()即可。我们在设备使用虚拟键导航时,弹窗弹出会调起底部导航栏导致抖动一下,原因是因为Dialog获取到了焦点导致导航栏被唤起。基于Kotlin的扩展方法,这里写一个工具类。
2024-03-19 16:09:06 454
原创 Android常见面试问题及其答案
思考:我们上面已经知道String是指向常量池的,它的值是不可变的,变更时其实是使用了StringBuilder进行拼接,再将拼接后的值在常量池中的地址指向给String,StringBuilder和StringBuffer的区别是前者线程不安全,效率高,后者线程安全。思考:String不可变的代码层原因是它的本质是一个设置为final的byte数组,内容不可变更,设计上是基于稳定考虑,毕竟不可变的对象是原子性的,线程安全的,避免了变化引起的问题。String b = "he"+"llo" (常量池)
2023-10-30 17:14:59 111
原创 安卓 synchronized(this)和synchronized(object)区别
synchronized(object)在多线程调用当前对象时,只阻塞同一个object对象的方法,而不是阻塞所有的synchronized方法,使用起来更加灵活。synchronized(this)在多线程调用this这个对象时,锁粒度比较大,它会将所有synchronized方法都阻塞。简单的线程锁一般有两种写法,它们本质上的区别是。
2023-07-31 17:39:04 126
原创 Android 抽屉组件DrawerLayout的简单使用
对于点击屏幕上按钮,从屏幕外上下左右划出一个菜单的场景,Android原生的DrawerLayout简单实用,这里记录一下<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/home_drawer_lay
2022-05-20 14:22:43 2238
原创 Android 23种设计模式:(零)面向对象的六大原则
设计模式是安卓最重要的进阶知识之一,好的代码结构必定由各种设计模式组成,而学习设计模式之前,我们要了解面向对象的六大原则六大原则是设计模式的基础理念,这里只需要理解记忆,学习完所有的设计模式后,再回来看六大原则,应该能有很大的收获1、单一职责原则单一原则很简单,就是将一组相关性很高的函数、数据封装到一个类中,每个方法的职责单一这个原则是最简单,也是最难的一点,因为方法职责单一的界定,一般需要开发者自己的经验来判断举例说明class A{ // 执行第一步 pri..
2021-10-29 17:01:21 1059
原创 Android Studio无法手动设置NDK路径问题
点击File->Project Structure后,打开的这个界面无法配置NDK localtion解决方式是直接在local.properties中配置ndk路径
2021-10-29 10:50:42 4405 3
原创 Android WebSocket原理及实战(二)
上期原理篇我们讲到了WebSocket和HTTP的区别及其优缺点,这期主要是实战部分,大多数Android项目不需要使用第三方重量级的WebSocket框架,所以我以OKHttp3.0自带的WebSocket为例,来进行讲解添加依赖implementation "com.squareup.okhttp3:okhttp:4.9.0"实现步骤 构建OkHttpClient配置初始化一些参数。 使用WebSocket的Url地址连接。 设置WebSocket的连接状态回..
2021-10-28 18:26:42 3448 4
原创 Android WebSocket原理及实战(一)
近来封装了一个基于WebSocket服务的库,过程中对WebSocket进行了总结,分几个章节进行讲解,看完后,应该能够对以下内容有个简单的了解1、WebSocket原理2、WebSocket与Http的区别3、为什么要使用WebSocket4、Android端WebSocket实战下面开始WebSocket伴随HTML5协议横空出世,这里的HTML5指的是一系列新规范,新技术,那么在HTML5之前,为什么没有WebSocket,而现在WebSocket的加入,又是为了解决什么问题呢
2021-10-28 16:32:32 3709
原创 解决OpenCv 图像倾斜90度或者倒立的问题
最近在做人脸识别,刚刚把OpenCvSDK环境配置好,就发现预览时的图像惨不忍睹,前置斜着,后置也有问题,所以做了些修改,解决了前置和后置各自的角度问题直接搜索CameraBridgeViewBase这个类,替换成下面的代码 public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac...
2018-08-31 11:16:46 1924 1
原创 Android Tv 焦点移动特效项目学习经验1
1. android:clipChildren的意思:是否限制子View在其范围内参考文章 http://blog.csdn.net/flymoon1201/article/details/446464732. android:clipToPadding 设置绘制区域是否不包括padding,常用于解决ImageView设置padding属性无效等问题参考文章 http://blog.
2017-10-09 16:56:01 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人