- 博客(114)
- 资源 (1)
- 收藏
- 关注
原创 Android:动态去掉RecyclerView动画导致时长累加问题解决
去掉动画后多次notifyItemChanged会发现每次这个动作的时长越来越长
2025-01-03 11:40:39
667
原创 Android无障碍服务监听实现自动点击按钮
通过监听窗口改变事件,监听目标应用,通过视图ID(或文本、或描述、或其他如坐标之类的)找到目标视图,使用无障碍动作点击方法点击它
2024-12-12 16:04:17
900
原创 Android:加载三方应用的小部件到自己APP显示
注意,Activity一定不能继承AppCompatActivity,他会将小部件内部的控件都改写成了AppCompatXXXX,导致小部件不能显示。1、自己加载小部件列表做选择要显示的小部件。2、调用系统的弹窗做选择要显示的小部件。
2024-10-18 18:20:18
473
原创 【Android】Viewpager与跑马灯TextView结合使用时不能滑动的问题解决
只要TextView添加了SingleLine,滑动TextView区域就无法切换ViewPager,去掉SingleLine属性就可以滑动。但是去掉SingleLine就又无法实现跑马灯效果(使用MaxLine替代也没用)。
2024-09-29 16:49:40
247
原创 Android:使用ViewOutlineProvider裁剪View四边圆角、单边圆角
上下同理,只要把rect定大一点,裁掉的部分看不到,那一条边就是直角了。
2024-08-27 18:41:43
591
原创 Android:RecyclerView跨行跨列的LayoutManager:Spannedgridlayoutmanager
RecyclerView可以使用GridLayoutManager实现跨行,但是不能跨列;瀑布流布局可以跨列但是又不能跨行。原生自带的各个LayoutManager中并没有可以又跨行又能跨列的。网上搜寻了一番,找到了一个亲测可行好用的三方库:spannedgridlayoutmanager。
2024-02-01 11:01:03
1644
8
原创 Android:自定义列表弹窗的单选图标样式、去掉列表弹窗的上下提示线
如果需求有要求在原生AlertDialog.setSingleChoiceItems后对弹窗样式做修改,可以参考文章内容
2023-10-09 14:32:12
700
原创 Android:自定义原生TimePickerDialog样式
Android用style的方式自定义原生TimePickerDialog中TimePicker的样式
2023-10-09 11:24:34
1126
3
原创 Android AlertDialog标题居中
网上很多做法都是使用setCustomTitle方法实现的,我偏不,因为我已经找到了标题的textView了,我想就原生的这个titleView做居中
2023-08-09 09:50:03
1634
原创 Android TV:自定义Leanback的VideoDetailsFragment
在Android studio新建TV项目的demo上做修改,实现一下需求:1、去掉顶部背景区域;2、修改中间详情区域高度;3、修改整体背景界面。搜遍全网,没有找到一个解决方案,只能自己探索了。
2023-07-04 15:29:58
705
原创 android XTS/CTS/GTS/STS报failed to run aapt2 on xxx
XTS/CTS/GTS/STS报failed to run aapt2 on xxx/xxxx.apk,没有pass也没有fail,而是抛异常中断
2023-06-15 16:22:02
1475
原创 Android中AIDL的简单使用(Hello world)
AIDL:Android Interface Definition Language(Android接口定义语言)作用:跨进程通讯。如A应用调用B应用提供的接口
2023-05-16 13:38:20
5614
1
原创 Android:开启LCD屏显示AOD界面功能
AOD原本是OLED自带的功能,LCD的设备默认是不开启这个选项的。但是项目有需求要开启,并且可以自己做亮屏的控制且不与原有的AOD功能冲突,可以用这个方案实现
2023-04-06 17:53:13
3845
原创 Android:使用LayerDrawable动态生成四宫格头像(包含双人、三人头像)
其实用自定义View也可以实现,我比较懒,就用LayerDrawable来创建一个新的Drawable资源实现。
2023-04-06 17:38:01
692
原创 Android12 Launcher3客制化:添加非抽屉模式(可动态切换)、图标自动补位功能
网上的很多博客这个地方都有点不太一样,PendingInstallShortcutInfo都是 InstallShortcutReceiver.PendingInstallShortcutInfo的,但是Android12的代码里面根本就没有InstallShortcutReceiver这个类了,所以全局搜索PendingInstallShortcutInfo发现ItemInstallQueue才有这个类,并且是私有的,我们需要把它改成public。这时候小部件就会消失了,所以我这边还是采取方案二。
2023-04-06 16:07:35
2219
7
原创 Android:startActivityForResult废弃,使用registerForActivityResult
【代码】Android:startActivityForResult废弃,使用registerForActivityResult。
2023-04-06 15:38:53
878
原创 Android12 Launcher3 的一些修改记录
本文将回答Launcher3 桌面是如何屏蔽返回手势的;Launcher3新安装应用从第二页开始放怎么实现;Launcher3图标去掉背景,前景做圆角裁剪,缩放等实现说明
2023-04-06 15:18:25
1147
原创 Android12 Launcher3 最近任务客制化
实现效果包括 : 修改图标位置+添加应用名称、多任务背景改成壁纸、Task预览图的圆角半径、清除全部按钮移动到底部显示、最近任务为空时的图片、字体颜色、Task预览图缩放效果等
2023-02-13 12:03:37
2545
6
原创 极光JMessage:IM即时通信集成群聊简单实现(无需自己搞后台和数据库)
一、注册极光账号,创建应用网址:首页 - 极光二、集成sdk:1、项目的build.gradle添加mavenCentral():buildscript { repositories { ... mavenCentral() } ...}allprojects { repositories { ... mavenCentral() }}2、app的build.g.
2021-12-21 13:07:06
3178
原创 【javaFx】使用小记录
textArea自动换行、textArea自动滚动到底部、固定窗口大小、子线程里面更新UI、拖拽文件或文字到窗口上面、文件/文件夹选择器、悬停文本提示、监听文本变化
2021-12-17 09:59:02
692
原创 (Kotlin)Android Jetpack开发 —— 数据库框架Room简单使用
前期工作:首先添加依赖://room数据库def roomVersion = "2.3.0"implementation("androidx.room:room-runtime:$roomVersion")annotationProcessor("androidx.room:room-compiler:$roomVersion")// To use Kotlin annotation processing tool (kapt) 添加这个,编译的时候系统会帮我们自动生成代码kapt(
2021-11-10 16:01:21
3109
原创 Android原生Switch禁止滑动实现
前言搜遍全网,没有找到对原生控件实现禁止滑动的,全都是自定义view实现。然后自己找到了一个解决方式,可以不重写Switch控件,只用style就能实现。这边先说一下有滑动效果会产生的问题:在注册了监听事件setOnCheckedChangeListener之后,通过代码去setCheck它也会进去change事件里面,但实际上我们不希望这个事件的发生,我们只想纯UI上的变化。网上有两种解决思路:第一种,也是比较笨的方法,setCheck前把change监听设置为null,se.
2021-11-04 15:53:01
4852
4
原创 自定义view之自定义滑动seekbar
搜索自定义seekbar全都是基于原生seekbar都是拖动滑块的,并且点击seekbar某个位置就会跳变到那里,我想要的是跟miui10的那个亮度条那样滑动来调节的,既然没有那就自己动手吧。首先自己要清楚要画出来的是什么样的,这里先看下效果图:实现思路:主要的就是要draw两个原件矩形,一个背景,一个进度的方块,然后通过onTouchEvent来触发滑动改变进度。首先先声明两支笔,一只画背景,一只话进度,然后给笔设置颜色:private Paint bgPaint;pri..
2021-08-24 17:02:22
1375
原创 WebView获取加载的html文本内容
效果如图:没有直接获取文本的方法,用的是通过js注入,调用js函数,使用js调用Android的方法并传入界面的<html></html>里面的内容。布局内容:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match.
2021-08-20 14:05:48
1944
原创 Android:支付宝sdk支付回调错误码4000
看下你的声明文件是不是声明sdk是30以上,是的话需要在AndroidManifest.xml添加如下代码:<queries> <package android:name="com.eg.android.AlipayGphone" /> <package android:name="hk.alipay.wallet" /> </queries>...
2021-07-06 20:08:03
1276
3
原创 Android:用MotionLayout布局简单实现过度动画
先看效果:(懒得视频转gif,就截三张图吧)动画前:动画中:动画结束:这里4个view分别做了动画:文字由黑色变红色 拖动圆形块由做到右 宽度改变块的宽度变宽 左下角弹出四个view先了解一下背景:MotionLayout继承自ConstraintLayout,所以布局里面的内容不需要改变,直接替换掉ConstraintLayout也是没有问题的。实现步骤:替换完之后布局会报问题,根据提示,让它自己生成我们的场景文件,并且会有一个属性:
2021-07-01 16:22:30
753
原创 Android 11裁剪图片提示保存时发生错误,保存失败
前提须知:总所周知,Android11之后存储发生变更,APP只能访问自己的私有目录或者公共目录,不能访问别的app的私有目录。错误原因:发生“保存时发生错误,保存失败”这个错误的原因是你调用系统自带的裁剪工具不属于你的app,访问你的app私有目录是不允许的。解决:裁切intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)这里的uri使用公用目录:File cropPhoto;if(Build.VERSION.SDK_INT >= Bu
2021-03-28 18:02:38
8022
8
原创 初学Kotlin之抽象的匿名内部类实现
Java的时候我们一般设置匿名内部类是直接new那个抽象类,然后回自动导入这个类需要实现的方法,例如:他会自动实现里面的三个方法:但是到了Kotlin的时候,刚接触学习Kotlin的小伙伴第一时间会想到java中需要new的在kotlin是不用new的,直接写类名,结果:不会有任何提示。是的,只有一个方法的可以用landau表达式,多个方法的需要每个都实现,这些方法肯定是不可能一个个敲出来的了。很简单,我们只要在前面加上object:...
2021-03-01 18:15:36
629
原创 Android:本地音乐文件写入专辑图
网上搜索这个Android写入专辑图的资料少之又少,都是读取的,这里我找到了一个方法,然后自己做了个写入专辑图的小工具,有需要的童鞋可以参考一下。先上效果图:依赖第三方库:jaudiotagger(java)、Okhttpdemo语言:Kotlin不会kotlin的小伙伴别慌,我也是边学kotlin先写的这个demo,看过kotlin基础语法的小伙伴应该还是比较好理解的。核心写入代码://path:本地音乐文件路径;picFile:本地图片文件(网络图片的话我这边的...
2021-02-08 16:12:33
867
2
原创 Kotlin内联扩展函数let,with,run,apply,also的简单理解
1、let:var result = object.let{ it.todo() 1000}let的函数体内用it代表该对象 可以判空:object?.let{} 返回函数体最后一行的值:result = 10002、with:var result = with(object){ todo() 1000}whit的函数体内用this代表该对象(可省略this) 本体是with(object,{}) 返回函数体最后一行的值:result .
2021-01-11 16:53:27
285
2
原创 Java程序员学Kotlin的一些小记录(1):java和kotlin方法互调小思考
Kotlin的函数的参数可以直接传递方法,Java不能,需要通过定义接口,用接口的方式传递。但是Java和Kotlin又可以互调,那如果我们再kotlin的类中定义一个需要参数传方法的函数,然后java去调用它这个函数,会以怎么样的形式传给它呢?我们在kotlin文件中定义一个函数,这个函数需要传递一个字符串和一个方法,这个方法需要传递两个数字,并且返回一个数字:(为方便调用声明为object,相当于java里面的静态类吧,里面的方法都是可直接访问)object TestKotlin{.
2021-01-07 14:50:36
204
原创 使用BaseQuickAdapter时RecyclerView嵌套RecyclerView点击事件处理最简单的解决方案
正常情况下,父RecyclerView嵌套子RecyclerView的话,点击子RecyclerView只会响应它自己的点击事件,就算你没有在BaseQuickAdapter里面设置它的点击事件,它也会拦截掉,不响应父列表的点击事件。大家的第一反应就是处理事件分发,让子列表不处理交给外部列表处理点击事件,又或者写一个接口传递给你的父adapter,让它再传给子adapter。都是比较麻烦的处理方式。这里提供另一种思路:点击内部列表调用外部点击事件的方法:@Override protecte.
2020-12-18 23:58:31
2992
1
原创 Andoid9、10报java.lang.IllegalStateException: Not one of standard directories: xxxxx解决
我这边是使用DownloadManager的时候遇到这个问题,因为写了try-catch,所以通知栏不会显示下载,直接走catch了,打印错误原因如下:java.lang.IllegalStateException: Not one of standard directories:xxxxx我都机子是Android10。网上百度原因:对于面向Build.VERSION_CODES.Q或更高版本的应用程序,不需要WRITE_EXTERNAL_STORAGE权限,并且dirType必须是已知..
2020-12-14 19:04:11
2180
2
spannedgridlayoutmanager-3.0.2
2024-02-01
android studio常用插件.rar
2020-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人