自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 资源 (1)
  • 收藏
  • 关注

原创 startService的常规做法2025

android在不同阶段Service有不同的限制。申明Service,和permission。

2025-02-05 15:41:53 193

原创 overridePendingTransition和overrideActivityTransition

那么,兼容起来是比较麻烦的。可以思考如何从基类Fragment/Activity着手哦。经过尝试,如此去兼容2种api。看来你不得不都这样加上了。

2025-01-16 10:44:45 212

原创 通过gradle发布aar或jar携带sources-jar到maven nexus

找了很久,没有找到满意的。终于找到一个好的办法。gradle7.x适用。比以前的写法简洁。

2025-01-07 10:29:35 575

原创 android EditText密码自动填充适配

手机厂商一般会默认带一个。三星叫做pass,iqoo叫做密码保险箱,小米叫做智能密码管理。第三方的有,google框架,lastPass,bitwarden等。以上是自动填充服务。然后,就是需要我们app做的事情,适配自动填充。

2024-12-20 15:17:53 535

原创 android EditText输入太长自动换行

android:lines=“1”, maxLines并不能限定他是否会自动换行。

2024-12-17 11:12:31 184

原创 android编译assets集成某文件太大更新导致git仓库变大

不知道大家有没有类似的困扰,你的工程assets文件过大,我曾经在某度车机地图团队工作过一段时间时候,每次发包会集成一个上百MB的文件。工作一段时间你的git仓库将会增加特别多。最后,你会发现你如果重新git clone这个仓库会非常大,好几G。当时我没有想到好办法。拓展:虽然可以通过来只check out最新的。但是commits又不太好出现。虽然我还有–unsallow的办法…始终不太好弄。但是现在我工作的团队,也有类似的,每次发包或者debug包都可能需要更新某个zip包,好几十MB。

2024-12-06 17:13:59 447

原创 kotlin android Handler removeCallbacks runnable不生效的一种可能

这是因为kotlin认为,Runnable等价于 ()->Unit. 坑就这里。它会帮你把()->unit函数转成Runnable传过去。比较老的解释就是因为messageQueue已经即将执行的不能被取消,这种我们很好理解它, 因为他已经在跑了,自然无法移掉。可以看到箭头函数会被编译成Function对象。android Handler无法移除runnable。

2024-10-31 14:07:55 640 1

原创 android含有EditText的键盘弹出后界面的正确处理

再给它套一层FrameLayout,设置android:fitsSystemWindows=“true” , height必须MATCH_PARENT;android布局中含有EditText是一个蛮难处理的场景。因为包裹它的布局不同和activity的softInput不同产生的界面变化是不一样的。然后activity android:windowSoftInputMode=“adjustResize|stateHidden”。这些条件组合起来会得出不同的结果。必须这样做才是最正确的。

2024-09-12 16:31:55 797

原创 materail3 CircularProgressIndicator和LinearProgressIndicator有难看的白块和断点

看看,连老外都在吐槽,https://www.reddit.com/r/androiddev/comments/19bwskv/is_the_new_material_3_linear_progress_indicator/?rdt=44295。这种设计实在是令人费解。它的原出处在这里:https://m3.material.io/components/progress-indicators/overview,官方设计。横线进度条,有尾部亮色,进度处又有分割。圆圈的进度条有断点,不连接;

2024-09-07 18:49:32 460

原创 在线制作9png的好网站

https://inloop.github.io/shadow4android/fook : https://github.com/inloop/shadow4android

2024-08-23 15:50:00 715 2

原创 AppBarLayout滚动吸顶有额外的颜色

CollapsingToolbarLayout 的 contentScrim。AppBarLayout 的 liftOnScrollColor。

2024-08-08 17:01:02 252

原创 基于RecyclerView下拉刷新框架拉伸效果微调

同时,还可以套入到NestScrollingChild和Parent的框架中继续分发事件。因为这个拉伸效果,其实就是代表了recyclerView消费(consumed)掉了y的距离。而通过上述代码禁掉了顶部的拉动效果,事件就能分发到父控件上。这样recyclerView的效果比较好看。往下拉,没有微微的拉伸动作。而到了底部往上继续拉有微微的拉动效果。通过使用上述代码,我们只禁用了顶部的下滑动作,其他动作保留。如果你是横向的,可以自行参考。通过上述代码,来阻止事件被上层view截获,解决误触严重的问题。

2024-08-07 17:41:20 307

原创 一种全局数据变化而且是多个的通知实现

从activityA,打开activityB, activityC 或者还存在viewpager上的其他Fragment。这种情况下,当操作了某个界面的Bean数据,更新当前自己是很容易的;但是当想更新其他界面,其他activity就比较麻烦了。这个简易的框架的目的是当onResume状态下,就把当前通知的单条变化给到;在这些界面上,大家都有相同的数据Bean(name, info, isFavourite)去展示成卡片列表。在更新数据的时候,changeData.notify(bean)。

2024-07-19 18:18:21 414

原创 我“硬刚”mmkv开源库对于版本号的定义赢啦!

可以看到,他们吸取的建议了,后续版本号将定为2.0,而且长期支持1.3.7(当然只是修正bug不再上新功能),并加了回来armV7和x86的库,前情是这个帖子https://blog.csdn.net/jzlhll123/article/details/139917169。而对于我们普通程序员而言,看到gradle有黄色提醒,我们有版本升级了,而且仅仅是第三位的升级,自然就给升级上去了。然后,时间过去了2周,看着越来越多的人给他提issue,看来他们也抗不住了。于是,经过我的多方研究,所以,对于这个事情,

2024-07-08 18:24:15 464

原创 android2024 gradle8 Processor和ksp两种编译时注解实现

android的编译时注解,老生常谈,外面的例子都是bindView,脑壳看疼了,自己学习和编写下。而且现在已经进化到kotlin2.0了,google也逐渐放弃kapt,进入维护状态。所以要好好看看本贴,基于最新的gradle8.6,kotlin2.0+,介绍kapt,ksp的写法。

2024-07-05 19:50:48 1813 6

原创 android deep links即scheme uri跳转以及googlePlay跳转配置

android跳转scheme uri的使用和问题总结

2024-07-04 10:52:45 741 1

原创 android模糊背景的实现

简单使用就是设置一个app:blurOverlayColor即可。android上模糊后期已经通用了基本上就是RenderEffect。为了使用方便简便找到一个合适的库。

2024-07-02 09:58:13 833

原创 android iconfont带图标的图文并茂的一种实现

android使用iconfont实现图文并茂

2024-07-02 09:48:37 411

原创 UnsatisfiedLinkError libmmkv.so not found

以前我发过一个帖子https://blog.csdn.net/jzlhll123/article/details/135248574,对于更老的手机,由于很早之前mmkv就不支持很老很老的架构了。没有默认的lib armeabi目前这种机器,确实只占不到1%,我们就忽略了。而如果你是googlePlay发布的话,由于平台又做了cpu架构的区别分发,用户v7a手机下载到的真实程序就没了。从打包后的包解压可以看到,只有arm64-v8a和x64目录里面有库。而1.3.4打包解压后,是4个目录有的。

2024-06-24 10:23:15 869

原创 升级gradle8.x无法编译aar上传maven without declaring an explit or implicit dependency

提示generateMetadataFileForReleasPublication without declaring an explit or implicit dependency.以前,我们通常是通过。

2024-06-18 17:05:59 376

原创 kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

原因就是字节码写了new出来的匿名内部类是个带T的,所以因为JVM上泛型擦除出现了T,gson的TypeToken就无法解析到真实的类,因此出现了问题。或者参考我上篇帖子https://blog.csdn.net/jzlhll123/article/details/139302991的三个解决方案。书接上回,https://blog.csdn.net/jzlhll123/article/details/139302991。我后来又通过在demo工程中尝试,怎么都无法复现,困扰了我好几天。

2024-06-02 23:13:34 905

原创 gson解析出现IllegalArgumentException: TypeToken type argument must not contain a type variable

让我们从头来捋一下。cmdcmd2上述代码呢,我们的目的是这样的:我们有一个实体类MyCmd, 由于cmdData的类,可变,他的真实类可能是Class1,Class2…我们想要做的事情呢,就是把MyCmd里面的基础字段,比如deviceId等进行修改。再还原回去。在gson2.10.1的库,上述代码是不会报错的。经过调试:我们可以看到,由于泛型传入的是Any(java则是Object),gson帮我们将cmdData解析成了LinkedTreeMap,这是他内部的结构。

2024-05-29 20:36:34 1275 1

原创 firebase如何自定义上传日志

官方文档https://firebase.google.cn/docs/crashlytics/customize-crash-reports?就是你必须在一堆log函数调用以后,调用recordException才行。这就是firebase提供的自定义日志和excption上传的方法。但是如果你认为log函数调用后,直接就能查看到日志就错了。我们会容易忽略这句话,“将日志与您的崩溃数据相关联”。所以遍查stackoverflow得到了解释,我们在这个page是找不到日志的。

2024-05-29 14:54:49 640

转载 android WebView无法弹出键盘

然后再重新运行下,看是不是ok了。问题原因处在最后的defStyleAttr,不能设置为0,应设置为com.android.internal.R.attr.webViewStyle!具体这个styleable里的参数是什么,暂且还未找到相关代码。有找到的朋友也欢迎分享下!原文链接:https://blog.csdn.net/Aran_biubiu/article/details/108326075。检查下你的WebView是否是自定义过的。如果是的话,构造方法注意一下,如果写法如下图所示则无法弹出。

2024-05-28 17:47:08 149

原创 android Seekbar当点击的时候有一个圆圈

通过修改background为null,就能不显示了。

2024-05-28 17:45:47 631

原创 android时间textView不等距导致宽度跳来跳去自定义View解决

android时间textView显示不等距导致宽度跳来跳去的原因是,大部分字体,0~9的数字的宽度是不等距的,因此当显示时间的时候,由于组合不同,就会导致宽度不同,时间看上去就会跳来跳去。因此解决办法有2个。第一,使用monospace的字体库。第二,就是今天我要说的自定义view来解决了。

2024-05-24 09:40:34 286

原创 【大道至简】官方兼容到android13+的获取系统屏幕高度, statusbar,navBar

android在屏幕高度和app高度,statusbar, navigationbar的高度处理上,迭代了好多版本。android11, android12都有新的api和过时的api标记。涉及的api太多。现在终于找到官方支持的库。分享给大家。

2024-05-14 21:27:08 1240

原创 ShapeableImageView圆角效果不对

如果没有添加scaleType centerCrop就会出现圆角不对劲的情况。后续有空,研究下为什么。

2024-05-13 10:02:36 278

转载 包了浆的android material主题默认颜色值

colorPrimary:应用的主要色调,ActionBar 默认使用该颜色,Toolbar 导航栏的底色,补充进度条比如ProgressBar或者CircularProgressIndicator。colorForeground:应用的前景色,ListView 的分割线,switch 滑动区默认使用该颜色;textColorPrimary:应用的主要文字颜色,ActionBar 的标题文字默认使用该颜色;colorBackground:应用的背景色,popMenu 的背景默认使用该颜色;

2024-05-09 10:56:03 195

原创 强烈推荐gradle统一版本管理新方式version catalogs

以前都是通过自定义config.gradle, 然后apply它,有一个弊端就是无法提示新版本可以升级。比如这个:在gradle7.0 preview了新功能,现在默认稳定了。尝试一下,超级方便迁移,巨推荐!几个好处:以前自定义,无法提示新版本;而且无法点击跳转过去;官方出品的,可以直接点击跳转,也可以在libs.versions.toml里面有提示。巨方便!

2024-05-06 12:20:13 1132

原创 SharedPreferences垃圾吗?对比MMKV和DataStore经验之谈

它是腾讯出品用于日志存储的,由于是奔溃瞬间也能记录,那么也就只有mmap的特性,进程死了也能存储。那么, 大部分情况,都是比较推荐使用MMKV的。对吧,但是看了源码你就知道,如果你频繁需要用到这个函数的时候,你每次去创建内部有大量的同步锁,文件读取,创建等待。综合这些SP的问题,其实大部分是使用者给他强加了太多的压力了,他本来就是一个小巧的东西。因为它要的就是快,如果每次你写入,立刻保存它就退化成了SharedPref了。他可能会崩溃,他可能无法提供大内容的存储,性能比较差,ANR等等。

2024-04-30 18:13:18 903

原创 Gson打印按照想要的key顺序

但是,由于json内部在序列化或者反序列化的过程,key其实是hashMap,无序的。因此,得不到我们想要的打印。它是用于将对象bean,转成json以后,能够比较漂亮的打印出json的结构。我常用的是如下4个函数。当然如上一些代码,尽量使用在Debug场景。通过注册解析函数,自行构建得到顺序。默认大家都知道这个吧?

2024-04-30 10:30:49 445

原创 googlePlay丢失语言包

话不多说,googlePlay aab就是这样的规则。

2024-04-28 14:53:16 228 1

原创 BottomSheetDialogFragment大量踩坑-自适应高度和最大高度和滚动问题等等

BottomSheetDialogFragment有大量的坑,这里做了不少的记录。固定展开,含有EditText的处理,自定义Toast的显示父控件,无法在dismiss之前得到监听,自适应高度和限定最大高度,含有滚动内容的处理。

2024-04-24 15:42:15 1706 2

原创 使用Barrier对齐ConstraintLayout几个控件的最高的一个

使用Barrier对齐ConstraintLayout几个控件的最高的一个。

2024-03-22 18:04:22 548

原创 android:fillViewport=“true“ 可以是NestedScrollView里面的控件充满

使用NestedScrollView的时候想要让布局撑满撑满整个屏幕,因为有一个控件需要放在屏幕底部。追加android:fillViewport="true"给nestedScrollView;关键点,嵌套一个布局wrap高度即可;然后让底部控件到底。

2024-03-22 17:18:24 680

转载 Android思源字体显示行高很大解决

安装以后,会提示你的环境C:\Users\xxx\AppData\Local\Programs\Python\Python312\Scripts。我这里安装在了C:\Users\xxx\AppData\Local\Programs\Python\。如果用别的工具,可能你需要找一个Hex工具了。搜索yMin,然后按N,应该只有一个地方。再次打开cmd,敲入ttx。百度python,安装python3.8+,目前3.12+。将你自己的目录,添加到windows的path中。直接关闭,重新vi它。

2024-03-13 20:35:18 520 1

原创 最新android icon和splashScreen适配兼容至2024android

android在12做了splashScreen的变动,即,android12+有自带的screenSplash过渡,不论你是否自己有变化,都会插入该动画。android8做了icon的巨大变动。13做了图标的主题兼容。

2024-03-11 17:33:03 3425 2

转载 android TextView自动换行右侧有大留白

所以,尝试使用android:breakStrategy="simple"来解决吧。

2024-03-06 10:10:07 448

原创 jsbridge2.0项目实践和踩坑记录

https://github.com/lzyzsd/JsBridge 1.0.4的版本还是挺好用的。最新的master,他并没有打包成aar公开,而且master代码已经被各种提交污染导致bug。更新的相互通知的机制。那么我基于该框架,也是为了完全兼容以前的前端H5代码,实现了jsbridge2.0。目前公司日活10w+。

2024-02-28 15:32:23 1148 2

HDThanhua_super_v0.9.2.zip

HDThanhua_super_v0.9.2.zip

2016-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除