自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 学习计划--持续更新

学习计划--持续更新kotlinJetpack组件Flutterkotlin去年买了一本《kotlin实战》,但公司一直没有项目练手,导致又忘的差不多了,最近因为解决同事的bug(他负责的模块是用kotlin写的,出差去了),又拾起来了。学习kotlin的基本语法,推荐菜鸟教程:Kotlin 教程视频教程,转载的一位博主的博客,该博主已上传至西瓜视频:Kotlin视频教学关于kotlin...

2019-09-23 12:58:23 174

原创 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 3299 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 215 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 856

原创 虚拟点击

虚拟点击自己练手顺便写了一个简单的炉石传说脚本:一键投降+下一局代码核心主要是两个Service,一个是悬浮窗,一个是虚拟点击。目前悬浮窗只适配了Android 8.0及之后的版本由于炉石传说游戏不是用java写的,监控不到其界面变化,就拿不到id,所以这里通过模拟坐标点击来实现的,不同手机分辨率不同,坐标会有差异AccessibilityServiceAccessibilityService-无障碍服务,设计初衷在于帮助残障用户使用android设备和应用,在后台运行,可以监听用户界面的一些状态

2020-07-21 16:59:50 380 1

原创 自定义控件-圆形刻度盘ui

圆形刻度盘效果新项目又来了,做的手表功能,有个圆形刻度盘的ui,ui图如下:思路1.刻度条其实是直线,先将坐标系移到圆心,画一条刻度(直线),再将坐标系旋转一定角度,再画一条刻度(直线),直到旋转一周。2.总共画两层刻度盘,第一层是白色刻度条的刻度盘,再画第二次有颜色刻度条的刻度盘,第二个刻度盘的刻度条从0到阀值,通过动画实现。3.取消的话,其实也可以增加一个动画,就是第二个刻度盘的刻度条从阀值到0关于坐标系画了一个图,简单易懂:代码直接放代码了:1.attrs.xml 自定义了一

2020-06-14 13:40:54 644

转载 Android开发常用第三方开源框架

链接

2020-03-10 17:03:24 138

原创 camera预览画面(黑色遮罩+圆形扫描框)

camera预览界面效果之前是要求圆形的预览界面,具体可以看我之前的博客圆形预览画面后来ui图出了,又是另一种效果,ui图如下:思路1.预览界面为最低层,充满整个布局2.上面覆盖一层黑色(不透明度为70%)的遮罩,但遮罩有一个圆形的缺口(透明的),可以透过这个圆形缺口可以看清该范围的预览界面3.绿色的扫描线可以通过绘制梯形来实现,然后通过动画实现上下移动问题怎么实现有一个圆形缺...

2020-02-21 17:12:20 1363

原创 camera预览界面(不压缩圆形效果)

camera预览界面问题用camera2开发人脸录入界面,使用TextureView展示预览界面。发现两个问题:1.预览界面无法显示为圆形,你会发现TextureView的onDraw等方法是final 的,无法继承重写2.如果TextureView的高宽是一样的长度,你会发现预览界面是压缩的,原因是大部分手机的camera支持的尺寸很少有1:1的,大部分是4:3的重写TextureVi...

2020-02-20 14:53:14 1641

原创 让你的代码更具kotlin风味(适合java转kotlin开发者)

让你的代码更具kotlin风味(适合java转kotlin开发者)用高阶函数代替callback用高阶函数代替callbackobject MIAudioResourceManager { init { Log.d(TAG, "MIAudioResourceManager") } fun testCallBack(text: String?, ...

2020-01-16 10:38:21 187

原创 Android混淆

Android混淆Proguard功能哪些不应该混淆配置文件踩过的坑proguard-common.proproguard-module.proproguard-third-party.proProguard功能1、压缩(shrink):没有被调用的代码删除2、优化(optimize):优化java字节码,同时移除没有使用的到指令。3、混淆(proguard):使用无意识简短字母组合,对类...

2019-11-22 10:54:52 1081 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 411

原创 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 961

转载 kotlin内置的一些扩展函数

kotlin内置的一些扩展函数区别使用场景kotlin内置的一些扩展函数,像let()、with()、also()、run()、apply(),可以优化kotlin的编码,有个博主总结的很好,转载插眼。自己也总结了一下区别1.let()、with()、also()能做的,run()和apply()都能做2.apply()整体作用功能和run()函数很像,唯一不同点就是它返回的值是对象本身,...

2019-10-16 12:37:40 236

原创 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 457

原创 RxJava2操作符

RxJava2操作符RxJava2操作符创建操作符变换操作符过滤操作符组合操作符其他操作符RxJava2操作符总结一下RxJava2的操作符,方便记忆和查询。创建操作符1.from:fromArray,将数组转换成observable;fromIterable,将集合转换成observable2.just:将一个或一些数据转换成observable3.range:创建以发送范围内的整数...

2019-10-08 21:14:04 167

原创 Kotlin笔记

Kotlin笔记--持续更新类和函数类数据类函数可变长参数函数属性NULL检查机制类型检测及自动类型转换区间基本数值类型扩展形式特点顶层函数和伴生对象顶层函数伴生对象中缀调用解构声明委托闭包内联函数类和函数类默认任何类都是基础继承自 Any (与java中的 Object 类似),但是我们可以继承其它类。所有的类默认都是不可继承的(final),所以我们只能继承那些明确声明 open 或者...

2019-10-06 15:43:59 184

原创 Kotlin-协程

Kotlin笔记--持续更新协程coroutine什么是协程协程的优点协程的创建协程的使用协程的挂起协程coroutine什么是协程kotlin的协程可以理解为线程框架api,更好的处理多线程问题,可以在同一个代码块里进行多次的线程切换。一个线程可以开启多个协程,单个协程挂起后不会阻塞当前线程,线程还可以继续执行其他任务。协程的优点线程切换简单(这点和rxjava相似),并支持自动切回来...

2019-09-27 16:05:51 182

原创 Retrofit2拦截器

Retrofit2拦截器用途用法实际使用分类ApplicationInterceptor(应用拦截器)NetworkInterceptor(网络拦截器)异同用途可以拦截request和reponse,对其监视、重写和重试调用,比如请求前对request修改或增加header,响应后对reponse修改或过滤。用法步骤1:实现 Interceptor 类,并重写 intercept 方法;...

2019-09-18 17:35:33 1833 2

原创 RecyclerView空白区域的点击事件

RecyclerView空白区域的点击事件错误的实现正确的实现错误的实现recyclerView.setOnTouchListener((v, event) -> { if (event.getAction() == MotionEvent.ACTION_UP) { if (v.getId() != 0) { ...

2019-09-04 14:29:45 3728 1

原创 RecyclerView添加选中效果

RecyclerView添加选中效果两种方案通过selector通过ItemDecoration修改activity修改adapter创建VideoItemDecoration两种方案通过selector该方案实现简单,适合背景图案是固定的item,需要注意一点:在adapter点击事件中调用notifyItemChanged(selectedPosition)来刷新界面@Override...

2019-09-02 15:34:00 3183

原创 Rxjava2.0之compose操作符

compose操作符用途用法说明特点用途对Observable流进行整体的变换,一般用于把一个或多个操作符封装起来,便于复用用法 Observable.just(-1,0,1,2,3) .compose(positiveNumber()) .compose(schedulersTransformer()) ...

2019-08-22 11:55:27 540

转载 ConstraintLayout的用法总结(转载)

原文链接: https://blog.csdn.net/lc_miao/article/details/97004486#_467ConstraintLayout的用法总结,这篇博客的博主总结的很全,转载插眼。

2019-08-19 17:04:25 79

原创 Android studio新版本关于返回上一次浏览位置的箭头按钮设置

安装新版本的Android studio,发现返回上一次浏览位置的箭头按钮不见了,原因是新版本的Android studio默认不显示toolbar,需要手动打开,将菜单栏View-->ToolBar勾选上。新版本的按钮图标也变了,如下:...

2019-08-16 17:17:28 3323 2

原创 RecyclerView实现左滑加载

RecyclerView实现左滑加载背景footview布局FootViewHolder新的adapter滑动监听器使用注意点效果图背景车载项目中,默认横屏,消息中心通过RecylerView展示各类消息,现在要求实现用户左滑获取更多消息并展示,实现方案是增加一个footerview布局,在原来的adpater上包裹一个新的adapter,监听用户滑动方向,这样做的好处是不需要修改原来的ada...

2019-08-13 10:42:55 692 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 1588

原创 Linux下安装jdk与环境配置

之前忙于找工作,有一个多月时间没写博客了。现在我正在学习Linux相关知识,看视频(韩顺平的)和书籍(鸟哥的Linux私房菜基础学习篇),这也是我一直以来的学习方法。学Linux当然也是为Java服务。第一步,当然是在Linux环境下安装jdk并配置环境(安装VMware虚拟机和Linux就不说了)。这其中也遇到不少坑。

2016-11-19 09:33:02 688

原创 常用SQL语句总结

最近面试,遇到一些面试官问了一些数据库的知识,大部分是让你写SQL语句。笔试也有很多考SQL语句。我总结了一些常用的SQL语句。1.E-R图模型:  实体(矩形),属性(椭圆),联系(菱形)。 2.范式:第一范式:数据库表中的列都是单一属性,不可再分。第二范式:数据库表中的不存在非关键字列对任一关键字的部分函数依赖。也即所有非关键列都完全依赖于任意一个关键字。如:一张学

2016-09-25 12:45:39 230

原创 实现Socket通信

看了几天TCP/IP协议和HTTP协议后,自己写了一个Demo用socket实现了一下(PC做服务器,Android做客户端),果然不动手不知道有些细节得注意。遇到最大的问题就是遇到这个异常java.net.SocketException: socket is closed 单向传输数据的时候server与client是没有问题的,但是两个都有输入输出操作的时候就出现了上面这个问题。一般来

2016-09-05 20:10:26 258

原创 自定义View之实现ListView的下拉刷新

自己花了两个礼拜基本掌握了自定义View,无论是继承现有的TextView,LinearLayout等还是继承View,ViewGroup,我都实现了一遍,收获了许多。自定义View的基本流程是:自定义属性一>测量onMeasure一>布局onLayout一>绘制onDraw一>处理onTouchEvent等。实际使用时,只要处理其中几个环节就行。像我自己绘制的天气中的折线图以及空调遥控器,关

2016-08-11 16:06:14 285

原创 《android开发艺术探索》笔记之Bitmap的加载和Cache

《Android开发艺术探索》笔记之Bitmap的加载和Cache缓存:目前常用的一种缓存算法是LRU(Least Recently Used),即近期最少使用算法,核心思想是当缓存满时,会优先淘汰近期最少使用的缓存对象。采用LRU算法的缓存有两种:LruCache和DiskLruCache,LruCache用于实现内存缓存,DiskLruCache则是存储设备缓存。LruCache:

2016-07-20 20:39:22 508

原创 《android开发艺术探索》笔记之Bitmap的加载和Cache

《Android开发艺术探索》笔记之Bitmap的加载和Cache首先说一下,这是我第一次写博客。之前有很多人推荐说写博客,看源码,能带你走进Android进阶之路。所以我就来了。我放暑假前,就在图书馆借了一本《Android开发艺术探索》,这也是我看到很多人推荐的。之前我看的Android入门的书是郭婶的《第一行代码》,确实适合入门。进阶的书就选择了《Android开发艺术探索》,其实还

2016-07-18 19:44:06 461

空空如也

空空如也

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

TA关注的人

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