![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 72
0你太猖狂0
这个作者很懒,什么都没留下…
展开
-
Kotlin中T.()->Unit 、(T) -> Unit 、()->Unit傻傻分不清
Kotlin中T.()->Unit 、(T) -> Unit 、()->Unit傻傻分不清这三个都是函数,返回值为unit,可以返回其他值,这里返回Unit只是为了方便理解T.()->Unit :我理解给类T定义了一个扩展函数,该函数没有形参,没有返回值,当然也可以增加参数与返回值(T) -> Unit :定义一个普通函数,带有参数,类型为T,没有返回值() -> Unit :定义一个普通函数,没有参数,没有返回值代码示例下面的代码定义了类T的三个扩展函数原创 2021-08-22 10:09:37 · 3693 阅读 · 2 评论 -
SVG图片和动画
SVG图片和动画了解SVG图片和动画,能够自己画一些图片或动画,效果比较酷炫代码放在github上了:传送门效果图SVG图片在drawable下新建my_drawable.xml,内容如下<?xml version="1.0" encoding="utf-8"?><vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="150dp" android:heig原创 2021-05-29 16:23:43 · 229 阅读 · 1 评论 -
高德地图demo(定位+poi检索)
高德地图demo最近一直在忙flutter项目,需要用到地图,功能包含定位和poi检索。目前百度地图支持flutter插件,但没有poi检索功能。在pub庫上看到有封装高德地图的flutter插件(amap_map_fluttify),实际集成后,有个严重问题,软键盘消失或出现,后面的地图会闪一下。最终确定通过plugin直接调用原生。自己写了一个demo,下一步就是移到plugin中demo代码放在github上了:传送门效果图高德key申请key并配置后,我直接将签名文件上传到app根原创 2021-01-08 13:50:52 · 888 阅读 · 0 评论 -
虚拟点击
虚拟点击自己练手顺便写了一个简单的炉石传说脚本:一键投降+下一局代码核心主要是两个Service,一个是悬浮窗,一个是虚拟点击。目前悬浮窗只适配了Android 8.0及之后的版本由于炉石传说游戏不是用java写的,监控不到其界面变化,就拿不到id,所以这里通过模拟坐标点击来实现的,不同手机分辨率不同,坐标会有差异AccessibilityServiceAccessibilityService-无障碍服务,设计初衷在于帮助残障用户使用android设备和应用,在后台运行,可以监听用户界面的一些状态原创 2020-07-21 16:59:50 · 403 阅读 · 1 评论 -
自定义控件-圆形刻度盘ui
圆形刻度盘效果新项目又来了,做的手表功能,有个圆形刻度盘的ui,ui图如下:思路1.刻度条其实是直线,先将坐标系移到圆心,画一条刻度(直线),再将坐标系旋转一定角度,再画一条刻度(直线),直到旋转一周。2.总共画两层刻度盘,第一层是白色刻度条的刻度盘,再画第二次有颜色刻度条的刻度盘,第二个刻度盘的刻度条从0到阀值,通过动画实现。3.取消的话,其实也可以增加一个动画,就是第二个刻度盘的刻度条从阀值到0关于坐标系画了一个图,简单易懂:代码直接放代码了:1.attrs.xml 自定义了一原创 2020-06-14 13:40:54 · 672 阅读 · 0 评论 -
Android开发常用第三方开源框架
链接转载 2020-03-10 17:03:24 · 144 阅读 · 0 评论 -
camera预览画面(黑色遮罩+圆形扫描框)
camera预览界面效果之前是要求圆形的预览界面,具体可以看我之前的博客圆形预览画面后来ui图出了,又是另一种效果,ui图如下:思路1.预览界面为最低层,充满整个布局2.上面覆盖一层黑色(不透明度为70%)的遮罩,但遮罩有一个圆形的缺口(透明的),可以透过这个圆形缺口可以看清该范围的预览界面3.绿色的扫描线可以通过绘制梯形来实现,然后通过动画实现上下移动问题怎么实现有一个圆形缺...原创 2020-02-21 17:12:20 · 1410 阅读 · 0 评论 -
camera预览界面(不压缩圆形效果)
camera预览界面问题用camera2开发人脸录入界面,使用TextureView展示预览界面。发现两个问题:1.预览界面无法显示为圆形,你会发现TextureView的onDraw等方法是final 的,无法继承重写2.如果TextureView的高宽是一样的长度,你会发现预览界面是压缩的,原因是大部分手机的camera支持的尺寸很少有1:1的,大部分是4:3的重写TextureVi...原创 2020-02-20 14:53:14 · 1718 阅读 · 0 评论 -
让你的代码更具kotlin风味(适合java转kotlin开发者)
让你的代码更具kotlin风味(适合java转kotlin开发者)用高阶函数代替callback用高阶函数代替callbackobject MIAudioResourceManager { init { Log.d(TAG, "MIAudioResourceManager") } fun testCallBack(text: String?, ...原创 2020-01-16 10:38:21 · 194 阅读 · 0 评论 -
Android混淆
Android混淆Proguard功能哪些不应该混淆配置文件踩过的坑proguard-common.proproguard-module.proproguard-third-party.proProguard功能1、压缩(shrink):没有被调用的代码删除2、优化(optimize):优化java字节码,同时移除没有使用的到指令。3、混淆(proguard):使用无意识简短字母组合,对类...原创 2019-11-22 10:54:52 · 1143 阅读 · 1 评论 -
AS一些问题汇总
AS一些问题汇总能编译过,但代码爆红:cache.properties 找不到能编译过,但代码爆红:解决方法:find . -name “*.iml” |xargs rmfind . -name “.idea” |xargs rm -rfinvalidate caches/restartcache.properties 找不到报错:.gradle/buildOutputCleanup...原创 2019-11-21 11:23:20 · 455 阅读 · 0 评论 -
adb命令打开activity或发送广播
adb命令打开activity或发送广播打开activity发送广播传递参数实例打开activity//方式一通过类名: am start -n 包名/Activity全路径 (需要该activity在manifest注册android:exported="true")//方式二通过action:am start -a ACTION发送广播am broadcast -a ACTI...原创 2019-11-21 09:58:57 · 1008 阅读 · 0 评论 -
kotlin内置的一些扩展函数
kotlin内置的一些扩展函数区别使用场景kotlin内置的一些扩展函数,像let()、with()、also()、run()、apply(),可以优化kotlin的编码,有个博主总结的很好,转载插眼。自己也总结了一下区别1.let()、with()、also()能做的,run()和apply()都能做2.apply()整体作用功能和run()函数很像,唯一不同点就是它返回的值是对象本身,...转载 2019-10-16 12:37:40 · 248 阅读 · 0 评论 -
Webview实现Android和JS通信
Webview实现Android和JS通信WebViewAndroid调用JS接口JS调用Android接口WebViewClient与WebChromeClient的区别WebView面试的时候被问到了,以前解过同事的bug,搞过一段时间的WebView,但忘的差不多,这里总结一下Android调用JS接口1.通过WebView的 loadUrl() //比如说调用callJS()...原创 2019-10-12 11:33:30 · 467 阅读 · 0 评论 -
Kotlin-协程
Kotlin笔记--持续更新协程coroutine什么是协程协程的优点协程的创建协程的使用协程的挂起协程coroutine什么是协程kotlin的协程可以理解为线程框架api,更好的处理多线程问题,可以在同一个代码块里进行多次的线程切换。一个线程可以开启多个协程,单个协程挂起后不会阻塞当前线程,线程还可以继续执行其他任务。协程的优点线程切换简单(这点和rxjava相似),并支持自动切回来...原创 2019-09-27 16:05:51 · 199 阅读 · 0 评论 -
Retrofit2拦截器
Retrofit2拦截器用途用法实际使用分类ApplicationInterceptor(应用拦截器)NetworkInterceptor(网络拦截器)异同用途可以拦截request和reponse,对其监视、重写和重试调用,比如请求前对request修改或增加header,响应后对reponse修改或过滤。用法步骤1:实现 Interceptor 类,并重写 intercept 方法;...原创 2019-09-18 17:35:33 · 1893 阅读 · 2 评论 -
RecyclerView空白区域的点击事件
RecyclerView空白区域的点击事件错误的实现正确的实现错误的实现recyclerView.setOnTouchListener((v, event) -> { if (event.getAction() == MotionEvent.ACTION_UP) { if (v.getId() != 0) { ...原创 2019-09-04 14:29:45 · 3772 阅读 · 1 评论 -
RecyclerView添加选中效果
RecyclerView添加选中效果两种方案通过selector通过ItemDecoration修改activity修改adapter创建VideoItemDecoration两种方案通过selector该方案实现简单,适合背景图案是固定的item,需要注意一点:在adapter点击事件中调用notifyItemChanged(selectedPosition)来刷新界面@Override...原创 2019-09-02 15:34:00 · 3239 阅读 · 0 评论 -
Rxjava2.0之compose操作符
compose操作符用途用法说明特点用途对Observable流进行整体的变换,一般用于把一个或多个操作符封装起来,便于复用用法 Observable.just(-1,0,1,2,3) .compose(positiveNumber()) .compose(schedulersTransformer()) ...原创 2019-08-22 11:55:27 · 551 阅读 · 0 评论 -
ConstraintLayout的用法总结(转载)
原文链接: https://blog.csdn.net/lc_miao/article/details/97004486#_467ConstraintLayout的用法总结,这篇博客的博主总结的很全,转载插眼。转载 2019-08-19 17:04:25 · 83 阅读 · 0 评论 -
RecyclerView实现左滑加载
RecyclerView实现左滑加载背景footview布局FootViewHolder新的adapter滑动监听器使用注意点效果图背景车载项目中,默认横屏,消息中心通过RecylerView展示各类消息,现在要求实现用户左滑获取更多消息并展示,实现方案是增加一个footerview布局,在原来的adpater上包裹一个新的adapter,监听用户滑动方向,这样做的好处是不需要修改原来的ada...原创 2019-08-13 10:42:55 · 722 阅读 · 3 评论 -
RxJava2.0之map和flatMap操作符的区别
概述flatMap将一个发送事件的上游Observable变换为多个发送事件的Observables,然后将它们发射的事件合并后放进一个单独的Observable里.flatMap并不保证事件的顺序,如果要保证事件的顺序,使用concatMap.代码public class Demo { public static void main(String[] args) { ...原创 2019-08-12 19:08:54 · 1603 阅读 · 0 评论 -
Kotlin笔记
Kotlin笔记--持续更新类和函数类数据类函数可变长参数函数属性NULL检查机制类型检测及自动类型转换区间基本数值类型扩展形式特点顶层函数和伴生对象顶层函数伴生对象中缀调用解构声明委托闭包内联函数类和函数类默认任何类都是基础继承自 Any (与java中的 Object 类似),但是我们可以继承其它类。所有的类默认都是不可继承的(final),所以我们只能继承那些明确声明 open 或者...原创 2019-10-06 15:43:59 · 196 阅读 · 0 评论 -
RxJava2操作符
RxJava2操作符RxJava2操作符创建操作符变换操作符过滤操作符组合操作符其他操作符RxJava2操作符总结一下RxJava2的操作符,方便记忆和查询。创建操作符1.from:fromArray,将数组转换成observable;fromIterable,将集合转换成observable2.just:将一个或一些数据转换成observable3.range:创建以发送范围内的整数...原创 2019-10-08 21:14:04 · 175 阅读 · 0 评论 -
学习计划--持续更新
学习计划--持续更新kotlinJetpack组件Flutterkotlin去年买了一本《kotlin实战》,但公司一直没有项目练手,导致又忘的差不多了,最近因为解决同事的bug(他负责的模块是用kotlin写的,出差去了),又拾起来了。学习kotlin的基本语法,推荐菜鸟教程:Kotlin 教程视频教程,转载的一位博主的博客,该博主已上传至西瓜视频:Kotlin视频教学关于kotlin...原创 2019-09-23 12:58:23 · 178 阅读 · 0 评论