- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 kotlin 协程在 Android 中的使用——Jetpack 中的协程、Retofit中使用协程及源码分析
介绍kotlin协程在android的使用,介绍kotlin协程+retrofit+ViewModel+LiveData的组合使用,和一些源码分析
2019-11-01 10:21:33 3907 11
原创 Android Gradle flavor —— 打造不同风味的app
为什么使用flavor?一个产品,主体功能相同,但又存在差异。比如国内各个手机厂商众多。你的产品想使用各个厂商手机内置的钱包支付功能怎么办?本文将通过 flavor 的学习解决这个问题。flavor 如何使用,代码的合并规则,module 中的 flavor 和 app 有冲突或缺失该如何处理
2021-11-17 13:00:24 6124
原创 Jetpack Compose 测量流程源码分析
本文你将学到什么通过一段代码场景,以Layout 函数为入口分析源码,解答一些心中所惑,如通过 Modifier 设置大小是如果起作用的?MeasurePolicy 接口的 measure 方法是怎么调用的?布局中的测量流程是什么样的?控件是怎么确认大小的?.........
2021-07-07 12:26:14 992 3
原创 Modifier源码,Kotlin高阶函数用的真6
在 JetPack Compose 中, 经常会用到 Modifier,它可以控制组件的行为和外观 如大小,背景等,还可以添加一些交互,如点击、滑动等。Modifier 功能很强大。Modifier 核心代码不到100行,Modifier 中把 Kotlin 高级函数用的很 6,以至于初看代码有点懵 ???? 。所以打算写此文章来学习一下 Modifier 中代码是如何执行的。Modifier 核心源码如下 Modifier.ktinterface Modifier { fun <R>
2021-06-22 21:13:17 1585 4
原创 Gson 字段排除策略总结
本文叙述了几种Gson中如何排除字段参数序列化和反序列化的方法,分别时关键词排除、使用@Expose进行排除,自定义排除策略。
2021-05-24 00:24:31 1738
原创 JetPack Compose 手写一个 Row 布局 | 自定义布局
介绍 Jetpack compose 如何自定义布局,通过学习自定义布局实现自己的Row的布局
2021-05-19 22:13:35 1908 5
原创 Jetpack Compose 基础 | 布局
本文主要内容:1了解Modifier的作用。2.Box、Colum、Row、ConstraintLayout的使用。3.重点介绍了 Box 和 Column 参数的使用。4.搞懂 Column 中的 Arrangement和 Alignment 的区别。强大的Modifier说布局前,先来简单了解一下修饰符——Modifier修饰符可以控制 组件的行为和外观 如大小,背景等,还可以添加一些交互,如点击、滑动等。 Text( "Android", modi
2021-04-17 22:09:55 3909 1
原创 类比学习——java 泛型& kotlin 泛型中的 in out where
在学习 kotlin 泛型的时候,经常会遇到 in out 这两个词,一会用in 一会用out,为啥这里要用 out ?为啥哪里用 in ?啥什么用 out 啥时候用in ?对应上面问题以前我是晕乎乎的,不是很明白,于是打算写这篇文章梳理一下,搞清楚怎么回事。Java 泛型在学kotlin 泛型之前,先回顾一下Java中的泛型为了方便说明引入下面几个类具体代码public class Animal { }public class Dog extends Animal{ }public cl
2021-02-24 21:46:55 2118 2
原创 Jetpack Compose 基础 | 混个脸熟篇
环境搭建工具由于 Jetpack Compose 目前还没有出正式版,所以要想开发体验,需要下载 最新 Canary 版的 Android Studio 预览版。创建新项目打开最新 Canary 版的 Android studio 预览版,创建一个新项目,你会发现创建新项目模板有一个 Empty Compose Activity 的模板,选择它创建一个项目就可以体验 Jetpack Compose 了。在创建 Jetpack Compose 你会发现 _minimumSdkVersion _
2021-01-13 23:35:44 5067 10
原创 关于 kotlin 的 forEach 如何实现 break/continue 的思考
在 kotlin 的 forEach 如何实现 break/continue 的效果?我们如何以优雅的方式实现break/continue相同的效果,函数式编程是个不错的选择
2021-01-06 15:40:51 11861
原创 在codelabs上学习如何搭建自己的codelabs
搭建自己的codelabs什么是Codelabs相信很多人应该用过,特别是android开发者官方介绍Codelabs提供了一个指导、教程、实践的编码体验 ,特别喜欢它按步骤的交互方式,如下图所示需要安装的软件GO语言Node.js v10+和npmclaat(由谷歌维护的开源命令行工具)1和2 安装应该没啥大问题,claat有点麻烦,按文档说的只要执行安装就行了go get github.com/googlecodelabs/tools/claat由于网络原因,可能会
2020-12-20 15:18:25 3474 2
原创 MotionLayout 使用说明书(进阶+实战)
MotionLayout 使用说明书(进阶+实战)在上一篇MotionLayout 使用说明书(入门级详解)中 介绍了MotionLayout 简单实用,今天本文来一篇进阶+实战,再来领会一下MotionLayout 的???????? 之处。本文你将学到1. 使用代码操控2. 和其它组件配合使用3. 仿华为拨号界面动画效果4. Android 11 彩蛋制作1.使用代码操控为什么要用代码控制转场呢,xml 写着不香吗???? ?xml 写着很方便,但是有时我们需要动态的改变转场的效果,就需
2020-11-14 10:08:01 4656 3
原创 MotionLayout 使用说明书(入门级详解)
准备工作把大象????关进冰箱需要三步,让项目中用上MotionLayout只需两步第一步:升级constraintlayout 至2.0及以上 implementation 'androidx.constraintlayout:constraintlayout:2.0.0-rc1'写此文时最新版本为 2.0.0-rc1 (话说 这个2.0.0 开发有点长呀,现在稳定版还是1.1.3)第二步:将布局转换为MotionLayoutMotionLayout 是ConstraintLayout 的子
2020-08-14 23:28:33 9411 9
原创 一个关于Dart错误提示的思考
前情提要引发我思考的就是下面这个错误提示 Only static members can be accessed in initalizers什么 ??????? double number=this.generateData(); dart 类可不可以这样写☕ java 可以呀,what???? ,为啥java可以呢?正片 ????java 类声明public class Test { //调用成员方法,并把返回值返回赋给成员变量num public double nu
2020-07-17 21:59:09 641
原创 Palette咋取不了黑白色?
1.来个需求最近有个需求,根据用户设置的个人主页背景改变字体颜色,想想这个比根据手机壳改变主题的需求相比还算合理。那就想想怎么做吧。我想Android 中有个Palette库(implementation ``**'androidx.palette:palette:1.0.0'**)应该可以做。我的思路大致如下 1 .利用Palette 获取图片的主色调 Palette.from(bitmap) .generate { palette -> .
2020-06-22 09:29:44 598
原创 Retrofit使用说明书
本文主要介绍 Retrofit 的使用,表单上传,文件上传,Retrofit是目前比较流行的Android 网络请求框架Retrofit主页,他是基于OkHttp进行了进一步封装,真正进行网络请求工作的是OKHttp,但是Retrofit 利用动态代理等处理,让开发者使用一些注解、很简单的代码就实现网络请求。(用了都说好,哈哈????),关于Retrofit的是如何工作的可以看看我上一篇写的源码面前无秘密之——Retrofit 源码分析,本文主要探讨Retrofit的使用。
2020-06-13 14:52:11 597 1
原创 源码面前无秘密之——Retrofit 源码分析
本文主要通过Retrofit的简单使用,来分析使用Retrofit的大致过程,通过分析分析源码来了解一下它的秘密。一.Retrofit 简单使用1. 导入依赖implementation 'com.squareup.retrofit2:retrofit:2.8.1'下面分析的Retrofit版本也是2.8.12.创建API方法接口interface ApiService { //普通版 @GET("article/list/{page}/json") fun get
2020-05-13 22:37:05 445
原创 重新认识一下Android 的Theme与Style
如何正确开发外观样式 | ADS 中文字幕视频 Theme (主题) 与Style(样式)的区别Android 中的Theme 和 style都是使用 style tag 标签来表示,如下所示 <style name="name"> <...
2020-04-01 22:06:25 878
原创 NDK 基础知识–JNI java与c++
NDK 基础知识–JNI开发环境: Android studio v3.6.1(3.6.0都支持kotlin与c/c++互相调用,是该学学NDK了,不能再找理由了)NDK 可以让我们Android 应用中使用C、C++代码。以前Android 都是使用java,NDK中包含JNI (java本地接口)可以使用java 调用c、c++等。如今kotlin被Android 官方宣布第一开发语言...
2020-03-24 22:42:38 462 1
原创 android studio 打release包报错:Lint found fatal errors while assembling a release target.
今天升级了一下android studio 发现代码可以运行,但是打release 包出错了,错误提示如下Lint found fatal errors while assembling a release target.To proceed, either fix the issues identified by lint, or modify your build script as fo...
2019-07-13 13:23:55 3159
原创 使用新版的BottomNavigationView当Item大于3时,去除动画很简单
BottomNavigationView 是用来实现底部导航的功能,是在api 26的推出的,是兼容的,而且在android Studio有模板代码,用起来很方便,item可以添加1-5个,但是当item超过3是就会有偏移动画,如下效果但在新版的BottomNavigationView 两个属性就可以解决这个问题 (网上通过反射的解决方案在这个新版本无效,因为此版本BottomNavigati...
2018-10-10 22:27:33 3698 6
原创 RecyclerView配合ItemTouchHelper的使用
temTouchHelper,可以很好的处理RecyclerView的item的滑动拖拽功能。ItemTouchHelper是android.support.v7.widget.helper包中的一个类,但现在android官方文档搜索,你会发现有两个ItemTouchHelper,其中是这个包下,另一个是androidx.recyclerview.widget包下的,根据官网说法android...
2018-09-27 13:35:25 2489
原创 向ConstraintLayout迁移
哎,前几天写的关于ConstraintLayout不小心写删掉了,今天重新写一篇。ConstraintLayout是现在google力推的一种布局,它的特点就是可以做到几乎没有嵌套,提高UI渲染速度。从 RelativeLayout向ConstraintLayout迁移网上有人说ConstraintLayout是RelativeLayout增强版,确实RelativeLayout能做到的Co...
2018-09-23 16:36:35 194
原创 Android顶部导航之TabLayout和ViewPager的组合,setupWithViewPager有点坑
TabLayout是Android Design Support Library的组件,可以很方便的写出顶部导航栏比以前那个什么TabHost好用多了,因为是Design Support Library下的控件,所以使用它要引入相关依赖 implementation 'com.android.support:design:26.1.0'**注意**Android studio 3.
2018-01-09 22:02:57 8650 3
原创 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
数据库执行遇到的错误[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column'information_schema.PROFILING.SEQ' which is not functionally dependent
2017-12-22 11:34:23 1423
原创 OKHTTP3的简单使用,表单提交,json传递
OKHTTP3的简单使用使用okhttp3需引入以下依赖 compile 'com.squareup.okio:okio:1.13.0' compile 'com.squareup.okhttp3:okhttp:3.9.0'1.okhttp GET方式请求 //创建OkHttpClient对象 OkHttpClient
2017-09-15 20:43:12 37738 11
原创 TextInputLayout+EditText在注册界面的使用(密码的的隐藏和可见,imeOptions的使用)
本文主要利用注册界面的例子介绍TextInputLayout和EditText一些属性的使用TextInputLayout是Design Support Library中的一个控件,使用的时候需要添加下面这个依赖 compile 'com.android.support:design:25.3.1'先看看运行效果吧
2017-05-18 13:40:37 6756 3
Android顶部导航之TabLayout和ViewPager的组合
2018-01-13
简单的注册界面——TextInputLayout
2017-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人