- 博客(1440)
- 资源 (118)
- 收藏
- 关注
转载 Android--沉浸式导航栏适配
本文是用于设配SDK4.4到5.0的沉浸式导航栏适配(4.4下面的实现不了沉浸式),上次说到适配沉浸式状态栏时,为DecorView添加一个View可以是实现,导航栏也同样,但是不是所有手机都有导航栏,所以我们先要判断手机有没有导航栏
2022-09-25 22:07:01
1685
转载 二维数组. 转置矩阵
给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引
2022-09-25 20:51:15
1733
转载 RecyclerView嵌套滑动冲突解决
如今咱们有竖向滑动的RecyclerView,在每一个item内部又嵌套了一个横向滑动的RecyclerView,那么咱们手指在滑动RecyclerVIew时,究竟是竖向的响应仍是横向的响应呢?java如图:红色线为手指滑动距离,右上方滑动到左下方;绿色为竖向滑动距离;蓝色为横向滑动距离;咱们的指望是若是手指滑动的横向距离大于竖向距离的话就响应竖向的外层RecyclerVIew的滑动;若是手指移动的竖向距离大于横向距离,则滑动内部的横向的RecyclerView。git总体效果以下,完整项目:h
2022-05-15 16:01:21
736
转载 Coordinatorlayout+ recyclerview滑动冲突解决方案
看过我博客的小伙伴应该知道,我比较多的都是集成高德地图的博客,作的过程当中也遇到不少问题,感谢各位大佬的指点,每次解决问题后,以为之后可能还会遇到,我就会来写博客。java今天也不例外,由于项目里面用到了高德的搜索,因此有结果页显示,由于咱们项目是高度集成的高德地图,因此不少控件,或者高德不经常使用的方法都找不到,话很少说。android此次项目需求是:作成和高德地图同样,搜索结果页有三级滑动,而且有列表,有列表固然用listview或者是Recyclerview,这里建议你们用Recyclervi
2022-05-15 08:12:04
1967
转载 Android | 自定义上拉抽屉+组合动画效果
Android技术152 篇文章0 订阅订阅专栏作者:I王小一话不多说先来个效果图看一下实现的主要功能就是上拉抽屉(解决了子view的滑动冲突)+ 边缘动画 + 中间小球和seekbar效果动画。黄色部分就是上拉抽屉整体,绿色部分是横向的recyclerview。有个朋友说有阻尼效果就完美了 … 因为效果图没有阻尼效果,所以就没有去研究 - -!先总结一下主要用到的技术ScrollView + NestedScrollingParent + NestedScrollingChild (.
2022-05-02 08:40:53
1714
转载 关于Android Service真正的完全详解,你需要知道的一切
转载请注明出处(万分感谢!):http://blog.youkuaiyun.com/javazejian/article/details/52709857出自【zejian的博客】 Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析:Service简单概述Service在清单文件中的声明Service启动服务实现方式及其详解Service绑定服务的三种实现方式关于启动服务与绑定服务间的转换问题前台服务以及通知发送服务Service与线程Thread的区别管理服务生命周
2022-03-25 19:43:03
799
转载 Android 23种设计模式
转自:Android 23种设计模式 - 简书Android 23种设计模式1、Android 单例模式2、Android Builder模式3、Android 原形模式(深浅拷贝)4、Android 工厂模式5、Android 策略模式6、Android 状态模式7、Android 责任链模式8、Android 命令模式9、Android 观察者模式10、Android 备忘录模式11、Android 迭代器模式12、Android 模板方法模式13、Android 访问者
2022-03-25 19:39:58
4265
转载 LifeCycle、ViewModel、LiveData 的组合使用
把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。实例:Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。这样做有什么好处呢?解释:假如现在有N多个类,需要用到Class B,那就需要在类里面实例化N多次,这样对于后期的维护和管理都是不方便的,如果后期需求
2021-08-01 07:58:00
511
转载 Android Room By Kotlin
最近在kotlin环境下,写了一个room数据库的demo,各种情况跑了一下,在此总结一下。涉及情况:增、删、改、查、排序1、环境搭建1.1、Android Studio下,新建一个kotlin项目,1.2、去app的build.gradle中进行一些配置顶部增加apply plugin: 'kotlin-kapt'1然后defaultConfig { ...... javaCompileOptions { annotatio...
2021-07-25 21:31:15
364
转载 git如何移除某文件夹的版本控制
目录结构如下project bin lib src ...... 执行如下的操作git add .git commit -m "add bin/ lib/ src/"git push origin master突然发现原来lib目录不需要提交到版本库,但是现在远程已经存在该目录,what should I do.(吐出去的东西还能收回来吗)万能的Git啊,help me!功夫不负有心人,找到了解决问题的方法,其实就是gitrm...
2021-07-25 11:11:52
511
转载 git删除指定commit
1.使用git log 命令,查看已提交的记录。例如红色圈出的commit是本次要删除的commit。2.先找到此次提交之前的一次提交的commit 1d6b81b138f89735265900b94fcd1ec39375e7b43.执行git rebase -i1d6b81b138f89735265900b94fcd1ec39375e7b4,弹出如下页面(不包含当前commit):按字母I键进入编辑模式,将需要删除的commit的pick改为drop,然后按esc退出编辑,:.
2021-07-17 22:43:34
842
转载 Git Reset 三种模式
有时候,我们用Git的时候有可能commit提交代码后,发现这一次commit的内容是有错误的,那么有两种处理方法:1、修改错误内容,再次commit一次 2、使用git reset 命令撤销这一次错误的commit第一种方法比较直接,但会多次一次commit记录。而我个人更倾向第二种方法,错误的commit没必要保留下来。那么今天来说一下git reset。它的一句话概括git-reset - Reset current HEAD to the specified state意思就
2021-07-17 22:02:17
312
转载 Android九宫格控件-可在ListView和RecyclerView中使用
需求场景熟悉Android App开发的同学,肯定都清楚,如果要显示多张图片,类似九宫格,可以用GridView或者GridLayout来做,但是如果需求要求在ListView或者recyclerView 的每个item中都显示这样一个九宫格,那么GridView就不适用了,GridLayout可以实现,但是不是那么优雅,我们需要在item每次重绘时,加入添加或者删除逻辑。既然框架没有提供满足需求的控件,我们只能自己实现。思路我们需要显示多张图片,那么肯定选择ViewGroup无疑,其实也就是一
2021-07-14 22:22:42
1557
1
转载 Androidx RecyclerView(一 ): 基本使用
一、用法:RecyclerView和其他用于界面数据滑动展示的控件(GridView,ListView,Spinner等)一样,都少不了数据源,适配器,以及监听逻辑处理这三块。下面就来讲解写RecyclerView的使用方法:1.引用(导包)2.布局文件引用3.构造适配器4.主程序,包括数据源以及逻辑处理等上两个简单的效果图:StaggeredGridLayoutManager 以瀑布流方式展示ItemimageLinerLayoutManager 以垂直或者水平列表方式展示I
2021-07-14 21:35:44
969
转载 Gradle史上最详细解析
郑重申明本文转自邓凡平老师的http://www.infoq.com/cn/articles/android-in-depth-gradle/前言对于Android工程师来说编译/打包等问题立即就成痛点了。一个APP有多个版本,Release版、Debug版、Test版。甚至针对不同APP Store都有不同的版本。在以前ROM的环境下,虽然可以配置Android.mk,但是需要依赖整个Android源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个app如果涉及到多个开发者,手动操作必然.
2021-07-01 21:19:14
3293
1
转载 利用databinding快速实现RecyclerView的adapter,支持多种item
简介Room持久库提供了一个SQLite抽象层,让你访问数据库更加稳如狗,提示数据库性能。Room库帮助应用数据缓存,这个缓存是应用唯一的真实来源,并且允许用户查看应用中的关键信息的一致副本。导入库dependencies { def room_version = "1.1.1" implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "an
2021-06-24 08:47:09
1253
转载 Android ROOM的基本使用
简介Room持久库提供了一个SQLite抽象层,让你访问数据库更加稳如狗,提示数据库性能。Room库帮助应用数据缓存,这个缓存是应用唯一的真实来源,并且允许用户查看应用中的关键信息的一致副本。导入库dependencies { def room_version = "1.1.1" implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "a.
2021-06-24 08:44:16
274
转载 Android ROOM的基本使用
简介Room持久库提供了一个SQLite抽象层,让你访问数据库更加稳如狗,提示数据库性能。Room库帮助应用数据缓存,这个缓存是应用唯一的真实来源,并且允许用户查看应用中的关键信息的一致副本。导入库dependencies { def room_version = "1.1.1" implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "a.
2021-06-14 22:18:01
318
转载 Android单元测试只看这一篇就够了
单元测试是应用程序测试策略中的基本测试,通过对代码进行单元测试,可以轻松地验证单个单元的逻辑是否正确,在每次构建之后运行单元测试,可以帮助您快速捕获和修复因代码更改(重构、优化等)带来的回归问题。本文主要聊聊Android中的单元测试,主要内容如下:单元测试的目的以及测试内容 Android中的单元测试分类 JUnit注解 本地单元测试 仪器化单元测试 常用的单元测试开源库 实践经验 其他一、单元测试的目的以及测试内容为什么要进行单元测试?提高稳定性,能够明确地了解是否正确的完成
2021-06-06 11:51:25
2122
转载 Android 11 外部存储权限适配指南及方案
前言 首先 Android 的权限大致分为三种: 普通权限:只需要在清单文件中注册即可 危险权限:需要在代码中动态申请,以弹系统 Dialog 的形式进行请求 特殊权限:需要在代码中动态申请,以跳系统 Activity 的形式进行请求 而我们今天要讲的主题,是关于存储权限,在 Android 6.0 之后就变成了危险权限,而到了 Android 11 上面变成了特殊权限,而最明显的区别是一个是通过 Dialog 展示给用户看,另外一个是通过 Activity 展
2021-05-30 11:19:31
4755
3
转载 在Kotlin中实现简洁优雅的RxBus
最近用Kotlin写代码比较多,写的多了真的越来越来喜欢这门语言。作为一门现代化的语言,Kotlin对比Java提供了简介的语法,更强大的lambda支持,属性扩展委托等。作为一个Android开发者的我来言,Kotlin over Java。组件之间的通信经常用到,用传统的接口方式也比较繁琐。而且目前的项目基本也都使用了RxJava,所以索性写个RxBus来实现好了。可能有人会说,我直接用EventBus好了呀,github上一万多个Star呢!沉默......我想说,你...
2021-05-24 23:36:58
378
转载 Kotlin 写 Android 单元测试(三),Mockito mocking 框架的使用
Kotlin 写 Android 单元测试系列:Kotlin 写 Android 单元测试(一),单元测试是什么以及为什么需要Kotlin 写 Android 单元测试(二),JUnit 4 测试框架和 kotlin.test 库的使用Kotlin 写 Android 单元测试(三),Mockito mocking 框架的使用Kotlin 写 Android 单元测试(四),Robolectric 在 JVM 上测试安卓相关代码Junit 4 测试框架可以验证有直接返回值的方法,但是对于
2021-05-23 19:44:45
1276
转载 Android Kotlin使用Mockito进行单元测试
简述在日常项目开发中,基本没有什么机会用到Kotlin,几个月前学习的语法,基本上都忘光了,于是自己强迫自己在写Demo中使用Kotlin,同时,在目前开发的项目中开了一个测试分支,用来补全之前没有写的测试代码。环境配置1.MockAPI单元测试中使用真实开发环境中的真实数据是不明智的,最好的方式是用本地的数据模拟网络请求,比如说我们有这样一个API,联网library我们选择Retrofit://TestServiceinterface TestService { .
2021-05-23 11:20:22
787
转载 Android Gradle 插件版本说明
Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可独立于 Android Studio 运行并单独更新。本页将介绍如何让 Gradle 工具保持最新状态,以及最近的更新包含哪些内容。如需详细了解如何使用 Gradle 配置 Android build,请参阅以下页面:
2021-05-16 23:12:53
3111
转载 开始使用Android CameraX
安卓中使用相机从来就不是一件容易的事。Camera1要自己管理Camera相机实例,要处理SufraceView相关的一堆东西,还有预览尺寸跟画面尺寸的选择,页面生命周期切换等等问题。。。后来推出了Camera2,从官方Demo就上千行代码来看,Camera2并不解决用起来复杂的问题,它提供了更多的调用接口,可定制性更好,结果就是对普通开发者来说更难用了。。。终于Google也意识到这个问题,推出了最终版CameraX. CameraX实际上还是用的Camera2,但它对调用API进行了很好的
2021-05-16 22:44:40
659
转载 Android:Camera2开发详解:实现预览、拍照、保存照片等功能
前言在前几篇文章中介绍了如何调用系统相机拍照和使用Camera1的实现自定义相机拍照、人脸检测等功能文章传送门:Android:调用系统相机实现拍照+裁切(兼容7.0以上系统) Android: Camera相机开发详解(上) —— 知识储备 Android: Camera相机开发详解(中) ——实现预览、拍照、保存照片等功能 Android: Camera相机开发详解(下) —— 实现人脸检测功能接下来的几篇文章中,我将给大家介绍如何使用Camera2实现自定义相机以及在实现过程中遇到
2021-05-12 22:43:17
1986
转载 Gradle 完整指南(Android)
来源https://juejin.im/entry/57c7a00e0a2b58006b1a1358参考https://juejin.im/post/5e924273f265da47f079379c为什么需要学Gradle?Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之前和之后都有对应更快的编译工具出现,但是 Gradle 的优势就在于它是亲儿子,Gradle 确实比较慢,这和它的编译过程有关,但是现在的Gradle 编译速度已经有了成倍提高。除此之外...
2021-05-09 21:06:56
361
转载 我所搭建的MVVM设计模式的Android框架(一)
写在前面:之前只是总在别人嘴里听说MVVM的设计模式,可能是因为环境问题,主要原因还是自己懒惰吧,只是听说却从未见过。直到最近到了新公司接手的别人的项目才发现,还有这种操作(其实就是看到了DataBinding)?感觉像发现了一个新大陆,也燃起了我重新开始写文章的想法。在此我要感谢我的新公司,也要感谢这个让我接触到新知识的这个陌生人,后面这个系列的文章都是从他这个项目基础上修改后抽离出来生成的依赖。最后,希望自己能坚持把这个系列写完吧。下面开始都是我自己的理解,身边也没有能指导我的人,我也是摸着石头过河
2021-05-09 20:58:38
297
转载 RxJava2轻松入门-获取豆瓣电影列表
Demo地址RxJava2Demo本Demo旨在帮助从未接触过RxJava的同学直接入坑RxJava2,如丝般顺滑,万水千山总是情,留个star行不行?RxJava & RxAndroid (2.0版)#定义RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for t
2021-05-08 22:38:21
555
转载 Kotlin 泛型中的 in 和 out
当我们在 Kotlin 中定义泛型时,我们会发现它需要使用到 in 和 out 两个关键字来定义。从形式上来讲,这是一种定义「逆变」和「协变」的方式。那啥叫逆变?啥叫协变?可以参考下维基百科的定义:协变与逆变in & out 怎么记?out(协变)如果泛型类只将泛型类型作为函数的返回(输出),那么使用 out:interface Production<out T> { fun produce(): T}可以称之为生产类/接口,因为它主要是用来生产(produ..
2021-05-08 21:13:33
1228
转载 Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...
先简单说说RxJava的用途与价值用途: 异步 (也就是开线程跳转)价值: 面对复杂的逻辑,它依然 简洁 ,代码 易读RxJava2 与 RxJava 最大的不一样的地方,就是 Flowable ,这个 Flowable 取代了Rxjava 中的简单的使用:下面展示一段代码:Flowable .fromArray(weeks) .map(new Function<String, String>() { @Override...
2021-05-08 20:59:55
541
转载 Android调用另一个App界面
最近年底了,项目比较忙,虽然用笔把要总结的技巧来技术写下了,但是一直没有时间来更新。今天要说的是在App中调用其他APP界面的总结,我们经常需要给别的程序调用自己程序的UI界面,这时可以有三种方式来提供调用。1、使用隐匿intent的方式调用,这种方式是比较推荐的,也比较简单首先在自己应用的Mainifest.xml中加入如下代码:<activity android:name="com.mhwang.test.CallActivity" android:launchMo...
2021-05-06 23:04:10
997
转载 Kotlin 协程 看这一篇就够了
前言Kotlin协程是什么,如何使用?如何结合Retrofit使用?Kotlin协程的优势在哪里?相信看完这一篇你一定有所收获!协程基本使用若使用协程,首先我们得引入协程相关的开发包implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7-mpp-dev-11'implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7-mpp-d.
2021-05-05 08:51:06
425
转载 Kotlin密封类
Kotlin密封类密封类被用于展示受限的类层次结构。当一个值可以有一个来自一个有限集合中的类型,但不能有任何其他类型。在某种程度上来说,它们是枚举类的扩展,一个枚举类型的值的集合也是受限的。但每一个枚举常量只作为一个单例存在,而密封类的子类可以有多个实例,这些实例都可以包含状态。定义一个密封类,你只需将sealed修饰符放在类名之前。一个密封类可以有多个子类,但它们必须和密封类定义在同一个文件中。sealed class Exprdata class Const(val number: Doubl
2021-05-05 08:46:20
183
转载 Android-APK签名工具-jarsigner和apksigner
一.工具介绍jarsigner是JDK提供的针对jar包签名的通用工具,位于JDK/bin/jarsigner.exeapksigner是Google官方提供的针对Android apk签名及验证的专用工具,位于Android SDK/build-tools/SDK版本/apksigner.bat不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),以上两个工具都可以对Android apk包进行签名.1.V1和V2签名的区别在Androi
2021-05-04 17:18:28
1596
1
转载 Android Gradle多版本打包
项目需求:一个项目相同的业务逻辑,要求打出不同版本的包,每个包的包名不相同。经过资料查询,需要在Gradle中完成一些配置即可。1、在src目录下添加不同版本对应的文件,以及在各个文件下面配置不同的资源文件。这里写图片描述2、在gradle中进行相关配置。在productFlavors下配置不同需求的包,在src下配置的文件和productFlavors下的文件需要一一对应。productFlavors{ flavors_dev{//此处的名字和productFlavors下的文...
2021-05-04 17:08:27
242
转载 Android 系统签名实现的三种方式
在项目开发时,如果需要使应用具有系统权限,例如可以支持静默安装和卸载APK,此时就需要使用系统签名。常用的系统签名方式包括在ubuntu环境下、手动签名和在AndroidStudio环境配置,三种方式中,实现最简单的是通过AndroidStudo方式,该方式的签名实现与正常的APK签名相同,唯一不同的就是签名文件是通过系统生成的。注意,无论采用何种签名方式,如果想实现具有系统权限的应用,在APK生成时,都需要在AndroidManifest.xml中配置android:sharedUserId=“and
2021-05-04 17:07:09
3412
转载 Android Gradle权威指南
1.Android Gradle插件介绍 我们知道Android起始就是Gradle的一个第三方插件,它是由Google的Android开发团队开发的。但从Android的角度来看,Android插件是基于Gradle构建的,和AndroidStudio完美无缝搭配的新一代构建系统。2.Android Gradle插件分类在Android中有3类工程 1.App应用工程,他可以生成一个可运行的apk应用。 App插件id :com.android.application 2.L
2021-05-04 16:48:37
880
iPhone_4详细评测
2011-04-16
Cocoa 基本原理指南
2011-04-16
LWUIT 1.3 J2ME UI框架
2010-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人