- 博客(370)
- 资源 (10)
- 收藏
- 关注
原创 OkHttp Interceptor日志上报
网络的埋点切入口,很容易就想到了 Interceptor,用起来了才觉得 Interceptor 是真的香,以前还只是觉得这个设计模式是真好。用到了才感觉是太香了。网络请求上报是带上了URL,现在的Retrofit 的URL 在其他地方是真的不好拿,这 Interceptor 确实方便的很。
2024-09-10 15:56:15 555
原创 android studio 同时支持http和https
这个问题是由于 Gradle 无法下载某些依赖项文件,这可能是因为服务器与客户端之间的 TLS 协议不兼容。问题出在 Android Studio 构建时尝试通过 HTTPS 下载某些文件,但由于协议版本问题(例如,服务器不支持 TLS 1.2 或 1.3),导致握手失败。在你的 build.gradle 文件中,更改所有依赖的仓库 URL 以使用 http 而不是 https。意思是华为这个库对于TLS protocol versions: (TLSv1.2, TLSv1.3)不支持。
2024-08-28 11:41:06 342
原创 Jetpack Compose 阻尼动画效果之SplineBasedDecay
SplineBasedDecay是 Jetpack Compose 中的一个函数,用于创建一个基于曲线衰减的动画效果。它通常用于创建平滑的动画效果,比如惯性滚动或惯性拖动的动画效果。
2024-04-12 14:49:45 348
原创 HarmonyOS首次尝试-HelloWorld
通过在鸿蒙社区查找解决办法,发现可能是API版本设置问题,还有创建时我选的是stage,导致无法使用更低的API 版本,所以又重新创建了个demo, 选择FA模式,API7。但是运行 hdc -c shell命令一直报错找不到设备就很离谱,明明studio都已经显示找到了,也能运行了。插上后,studio能显示连接上了手机设备,创建的demo使用的是API9,也就是当前的最新版本。3.0.0我猜的是API7吧,一运行又是报错,找不到设备。如果你没有配置 环境变量,会报错找不到命令,去配置就行。
2023-12-12 09:50:55 1147
原创 Ubuntu中Gitlab + Gitlab-CI + Docker + Fastlane完成Android自动化编译和打包
Android开发过程中持续集成是一项非常重要和必要的工作。持续集成指的是通过自动化的方式将开发、测试和部署过程整合在一起,实现代码的自动构建和测试,并快速反馈给开发人员,从而加快软件开发周期,提高软件质量和稳定性。以下是持续集成的重要性和必要性:提高开发效率和质量:持续集成可以自动构建和测试代码,快速检测出问题,并及时反馈给开发人员,这样可以减少手动测试的工作量,提高效率和质量。降低错误率:持续集成可以避免由于手动构建和测试过程中的疏忽而引入错误,保证了代码的准确性和可靠性,降低了错误率。
2023-06-02 14:29:49 1141
原创 ubuntu虚拟机固定ip
在Mac电脑里安装了VMWare Fusion虚拟机,里面安装了Ubuntu系统。然后每次在使用gitlab的时候,会因为每次关机启动虚拟机后,ip地址会变化,导致每次都需要去配置gitlab的ip地址,不胜其烦呀。
2023-05-30 11:07:31 638
原创 android No virtual method xxx(XXXX;)
“No virtual method getTag(Ljava/lang/String;)” error when calling xxx。在我们项目就是,多个库引用了同一个库,但是各自引用改库的版本确不一致,导致的改问题。
2022-06-10 13:49:46 2012
原创 Gradle sync failed: Could not install Gradle distribution from xxx
最近升级了Android Studio,就开始编译报错:Gradle sync failed: Could not install Gradle distribution from ‘https://services.gradle.org/distributions/gradle-7.0.2-bin.zip’. (192 ms)明明就有这个版本的gradle,就是说找不到。最后发现是studio配置的问题!看配置图:然后再同步一下就OK了。...
2022-02-14 17:21:52 2968
原创 RecyclerView中带EditTextView问题
所有index位置使用helper.layoutPosition, 崩溃报错android Called attach on a child which is not detached。所有地方使用 helper.layoutPosition 直接数据越界。从data中获取数据使用helper.layoutPosition - headerLayoutCount,更新使用helper.layoutPosition。无法获取到helper实例的地方: index + headerLayoutCount
2022-01-07 18:01:00 973
原创 通知栏消息多种提醒方式
有时候我们需要在白天让我们的通知消息跟随系统,但是夜晚需要静默提醒,不去打扰用户。就需要对Notification进行不同的设置。下面上代码,兼容不同版本:fun createNotification(messageBean: PushInlineMessageBean) { val isDefaultDuration = System.currentTimeMillis() < DateTools.getTodayHourTime(23) &&
2021-07-22 13:58:26 878
原创 RecyclerView精确测量高度
仅支持LinearLayoutManager布局的RecyclerView.class LinearLayoutManagerOffset(context: Context?) : LinearLayoutManager(context) { private val childSizesMap = mutableMapOf<Int, Int>() override fun onLayoutCompleted(state: RecyclerView.State?) {
2021-06-30 14:10:49 1202
原创 Android 6.0 API
Android 6.0 (M) 为用户和应用开发者提供了新功能。本文旨在介绍其中最值得关注的 API。着手开发要着手开发 Android 6.0 应用,您必须先获得 Android SDK,然后使用SDK 管理器下载 Android 6.0 SDK Platform 和系统映像。更新目标 API 级别要进一步优化您的应用在运行 Android 的设备上的性能,请将您的
2021-06-30 14:06:13 406
原创 scrollview嵌入webview导致自动滚动
当我们在界面外层使用了ScrollView,内层又有WebView时,当进入界面后,会导致ScrollView自动滚动到webView刚好可见的位置。找了下资料,参考链接:https://stackoverflow.com/questions/9842494/how-to-prevent-a-scrollview-from-scrolling-to-a-webview-after-data-i
2021-06-30 14:03:55 326
原创 Gson的alternate
对多种属性名不一致的情况,需要用到 SerializedName 注解的另一个属性值alternate.public class User { @SerializedName(value = "height", alternate = {"Height", "mHeight"}) private int height; private int width;...
2021-06-30 14:02:10 819
原创 Android导出Crash日志
一行代码:adbbugreport搞定参考:https://developer.android.com/studio/debug/bug-report
2021-06-30 14:00:11 1372
原创 MPAndroidChart之K线MarkerView自定--MotionEvent事件传递
前沿最近在做k线的时候,需要做到两个图表的marker同步显示,如下:需要 MOVE 事件在两个图表之间很顺滑的触发,说白话就是,我在topChart上点击后开始move, 一直滑动到bottomChart后,需要直接响应bottomChart到touch事件,而不是继续在topChart上。所以我“禁止”了两个图表的点击事件监听,打引号是因为我还是给两个图表设置了touch监听事件,只是在onTouch的时候直接返回了false:override fun onTouch(v: V
2021-04-15 22:07:55 245
原创 Glide加载图片不显示
最近在做图片分享的时候,加载图片用的是Glide,但是我的图片是使用多个View拼接成的一个图片,这个时候图片一直不显示,查了下说是因为ImageView不可见,不会走回掉,所以没法显示。只要设置override(width, height)就可以了。...
2021-04-15 22:06:07 930
转载 android textview 使用SpannableString时ellipsize属性不起作用
android textview 使用SpannableString时ellipsize属性不起作用https://www.zhihu.com/question/52436308/answer/130588361
2021-03-23 19:54:57 901 1
原创 MPAndroidChart相关API使用说明
开源项目MPAndroidChart的相关使用说明,非常强大的一个开源库。https://github.com/PhilJay/MPAndroidChart1. xx.setViewPortOffsets设置图表图表位置,因为有时候我们的图表可能数值有被遮挡住的问题2. 设置左边Y轴在图表中完全显示首先设置 axisLeft.setPosition(YAxisLabelPosition.INSIDE_CHART)这个时候顶部和底部的刻度显示会被挡住部分,而且不是完全在
2020-11-02 14:56:42 1035
原创 git stash操作
关于stash之前一直停留在 git stash save "" 和 git stash apply 这两个命令,今天不小心把 git stash apply 到一个错误的分支上了,趁机会赶紧学习一波 stash 。先说下 git stash apply 到错误分支的解决办法:1. 还原改分支上的修改,也就是 git stash apply 的内容删除2. 切换到目标分支3. git stash list 查看需要 stash apply 的节点4. git stash show x
2020-09-30 09:18:17 613
原创 WebView中H5样式调试
有墙,自行解决!1. WebView启动调试模式WebView设置 setWebContentsDebuggingEnabled(),该方法是私有方法,所以需要反射:private fun setWebContentsDebuggingEnabled(debug: Boolean) { try { val var2 = Class.forName("android.webkit.WebView") val var3 = array
2020-09-24 14:22:47 882
转载 RecylcerView精确滚动到底部
如果都是文本或者有一些静态图片等高度确定的item,RecyclerView的scrollToPosition或者smoothScrollToPosition滚动肯定是精准的。但是,当我们的item中有一些网络图片需要加载时,这个时候RecyclerView的xxx方法就无法精确滚动了,因为图片是异步加载的,滚动的时候图片可能还没加载完成,会影响RecyclerView的高度计算(图片高度确定的除外)。这个时候就得这么处理了:private void scrollToBottom(fi
2020-09-14 10:51:26 1119
原创 activity,fragment和fragment之前的数据传递
Fragment 使用频率越来越高,碎片化也越来越严重。这就导致了难免出现 Activity 和 Fragment ,Fragment 和 Fragment 出现通信。Activity ->Fragment:1. 缓存 Fragment 实例2.通过 FragmentManager3. 通过 EventBus4. 广播...Fragment->Activity:1. 通过接口2. 通过类型强制转换 (activity as? XX)3. 通过 Ev...
2020-09-14 10:50:28 240
原创 RecyclerView中局部刷新
最近在做聊天室相关内容,也就是类似于常见的聊天功能。其中就难免会显示每条消息的时间,如果类似于微信或者QQ时间显示日期或者具体的时间那还好说,今天的消息显示的是HH:mm,昨天的是“昨天HH:mm”, 更早的是的是"MM月:dd日HH:mm",跟当前时间比较时,显示的时间都是一个,不存在刷新的问题。但是,我们的显示是这样的:一小时内:xx分钟前一天内:xx小时前昨天::昨天 HH:mm前天:前天 HH:mm更早的: MM月dd日 HH:mm那么问题来了,如果是当天的消息,时.
2020-09-01 09:26:55 886
原创 Mac ubuntu搭建本地gitlab
前沿安装visualbox安装ubuntu设置ubuntu界面自适应窗口大小准备各种tool下载gitlab配置gitlab登录gitlab并修改密码生成ssh密钥创建项目拉取分支并提交修改The end....
2020-07-23 11:08:44 188
原创 TextView设置图片标签
在项目中,我们经常会碰到需要在TextView前面添加图片标签的需求,如果是文本一行就能显示的话,我们一般会使用TextView的setCompoundDrawables方法:drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), (drawable.getMinimumHeight())); v.setCompoundDrawables(drawable, null, null, null); text
2020-07-16 11:37:47 483
Hello-jni-ndk
2017-03-03
设计师测量文本行距
2016-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人