- 博客(18)
- 收藏
- 关注
原创 更丝滑的适配软键盘高度之windowsInsetsCompat
一、首先是根布局的监听类实现,需要继承WindowInsetsAnimationCompat.Callback类,实现OnApplyWindowInsetsListener 接口。在我尝试实现官方提供的方法时,看文档看的一脸懵逼,代码一通复制粘贴却发现没有什么*用。二、输入框组件的监听类实现。后来又继续找了半天,找到了一个最清晰直接的demo并根据它了解了真正的实现过程。文档这么简单,案例怎么写一大堆,又是kotlin,太难理解了……主要是用于处理软键盘弹出后,键盘高度升高的平滑动画。
2025-01-21 14:41:15
426
原创 刮刮乐实现之Imageview自定义组件
注意:在init()方法中将上层蒙版的画布赋值给了全局变量,这里touch绘制的路径也是在蒙版的画布mCanvas上绘制的,而不是在全局的组件画布canvas上绘制。但是--根据原理就可以发现通过DST_OUT是把相交的部分隐藏,未相交的部分显示为先绘制的图层A,类似A=A-A∩B。而通过DST_IN是显示A与B的交集部分为A,类似A=A∩B。3.通过触摸事件将路径绘制到画布上,与第一层画布相交的部分就会被清除。
2025-01-14 18:10:50
382
原创 自定义view之实现圆形图片imageview
讲解:本文中使用到三个画布canvas,分别是整个视图的画布函数形参canvasA,图片画图canvasB,遮罩层canvasC。主要实现是先绘制B,再设置画笔格式为DST_IN,然后在B上绘制C,最后把B绘制到A上。实现方式:通过两个图层,图层A绘制图片,图层B绘制遮罩层,然后以相交模式将B放在A上,即可实现圆形图片。DST 是先绘制的图层A,SRC是后绘制的图B。
2025-01-13 15:19:41
296
原创 recyclerview更新进度时滑动列表出现闪烁或跳动问题的解决方案。
在短时间内重复多次使用notifyitemchange导致的holder视图重绘,如果实验就可以发现,在更新发生异常跳动之后的间隔再滑动可以看到holder(item)并没有消失,只是在更新时发生了一次重新绘制,所以才出现这种消失的列表跳动。在使用高德sdk下载离线地图的业务场景中,需要实时更新下载进度。当我通过notifyItemChanged更新item时却发现滑动列表时会出现:在更新时屏幕外的item滑动进入屏幕时突然消失,列表跳动并移动到顶部,看起来是很奇怪的跳动。网上得到的废话大概有以下类型。
2024-12-31 14:18:11
652
原创 动效布局Motionlayout
2、motionlayoput需要一个motionsence文件来实现动效,如果你使用motionlayout而没有这个文件,编译器会提示。ConstraintSet 是一个组件集合,里面包含需要动画过渡的组件,此处只使用imagefilterview。这是一个简单地motionlayout布局文件,包含一个imagfilterview和一个textview。imagefilterview是一个imageview的增强版组件,提供图像处理功能。此处实现的动画效果是左右晃动一次。3.然后设置动画的执行。
2024-11-14 18:38:33
193
原创 项目搭建之导航(navigation进行页面切换)
在实现页面跳转时,大部分新手都会选择使用Intent,或者说使用fragment的replace或hide-show之类的方法去实现页面的切换(我也是这样)。但是这样一来,如果页面一多,管理将变得十分复杂,所以安卓开发sdk后来推出了navigation作为页面管理的组件。代码如下,在这个文件中,action代表跳转事件,destination代表目标位置,anim是一些安卓自带的切换动画。5、到上面那步,页面的导航切换就已经完成了,接下来还需要添加顶部的actionBar,以实现返回。
2024-11-03 20:27:05
415
原创 activity动画切换
使用动画启动 activity | Views | Android Developers (google.cn)item只是界面传递的参数,并不影响切换效果的实现。安卓开发文档的实现总结。
2024-10-21 15:54:27
269
原创 BottomNavigationView的实现以及一些问题
安卓的底部导航栏组件BottomNavigationView:代码实现以及实现过程中的一些坑。
2024-08-08 15:44:50
463
1
原创 安卓界面适配软键盘
最终得到的结果是:adjustresize没反应,adjustpan会导致顶部的组件溢出屏幕,没有办法像微信聊天界面一样顶部固定,只移动输入框。在很多使用安卓输入框edittext时,经常会出现:当edittext在底部时,软键盘的弹起会导致界面遮挡,无法看到自己的输入的内容,所以此时就需要对软键盘进行界面适配。另一种实现,与上面选其一即可,但是下面不包含虚拟按键高度,会导致底部布局和键盘有一块按键高度的间隔。一个模拟聊天页面,复制可用,最外层relativelayout用自己的即可。
2024-07-25 14:41:20
527
原创 kotlin泛型、以及in、out关键字的作用
无论是在类、还是在方法中,<T>泛型占位符的定义都只表示这个类/方法支持泛型,并不是表示这个类/方法的返回值和属性都被定义为泛型。也就是说即是使用<T>修饰,你同样可以使用基本类型作为属性和返回值。//最简单的泛型类格式//泛型类支持泛型属性//还可以支持泛型方法//方法体//支持泛型参数的方法//方法体//返回泛型的方法//方法体//多泛型,此处只做入门讲解,多泛型不做深入//方法体。
2024-05-29 15:15:21
1322
1
原创 Unable to instantiate appComponentFactory问题
如果无法解决再尝试更改父类样式库。在res>values>themes.xml文件中更改。是目前个人学习过程中的解决办法,后续发现更好的解决办法再做补充。加在模块下的proguard-rules.pro文件中。
2024-05-09 14:24:58
1354
1
原创 修改新版android stuio默认按钮样式
NoActionBar:不包含标题栏,也就是说样式不会对你创建的标题栏样式生效。对样式库的引用,新版默认Themes.Material3,谷歌开发的样式库。我使用旧版Theme.AppCompat,安卓v7兼容包样式。找res/values/themes.xml文件。Light:样式亮色 也可以设置Dark 暗色。只需要修改parent属性 :默认按钮为灰色。
2024-04-18 11:58:08
770
1
原创 安卓后台录音service和播放录音service实现
初学安卓,自己写的demo,供大家参考,可以在此基础上实现更多功能。功能并不完善,还有许多地方值得优化,但是整体的流程基本上已经实现。坚持学习,你我都会成功。xml文件布局,随便写。
2024-04-12 18:32:42
1030
1
原创 String类概述,构造对象特点以及遍历方法
一、概述string类代表字符串,程序中所有字符串都是string类的实例。即所有双引号字符串如“abc”,都是string类的对象。string类在java.lang包下,不需要导包。字符串在创建后不可以变,值无法更改,只能做替换,可以被共享。二、构造特点string类的构造方法有四种:1.创建空白字符串对象,不包含任何内容。string s=new string();2.根据字符数组创建对象char[] ch={'a','b','c'};String s=ne
2022-03-15 11:04:08
999
原创 PHP一维数组的定义
在定义PHP一维数组的时候,通常有两个方法。一、通过[]标识符来创建数组。$Array [key]=value;例如:创建一个数组a,并给第一个元素赋值12。$a[3]=12;表示数组a的第4号位(从零开始)的元素是12。a[]=12;表示创建一个数组,并写入元素12,此时的数组结构为:array([0]=>12);如果此时再创建数组a[]=12;表示创建一个数组,并写入元素12,此时的数组结构为:array ([0]=>12);如果此时再创建数组a[]=12;表示创建一个数组,并
2022-01-02 18:18:32
1528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人