Kotlin
文章平均质量分 84
从现在开始,即将进入Kotlin的奇妙世界~
Swuagg
走一段令人留恋的路,做一个不负自己的人
展开
-
Kotlin-协程使用
withContext 指定执行协程的线程Dispatchers.Main - 在 Android 主线程上运行协程Dispatchers.IO - 此调度程序经过了专门优化,适合在主线程之外执行磁盘或网络 I/ODispatchers.Default - 此调度程序经过了专门优化,适合在主线程之外执行占用大量 CPU 资源的工作如:withContext(Dispatchers.IO)创建一个在 IO 线程池中运行的块。原创 2023-02-06 13:51:20 · 1046 阅读 · 0 评论 -
Kotlin拿Android本地视频缩略图
Kotlin拿Android本地视频缩略图如何拿到本地视频?怎么拿视频缩略图?缩略图如何压缩?MediaMetadataRetriever可以通过视频系统路径,直接使用getFrameAtTime方法拿到第一帧作为缩略图ThumbnailUtils.createVideoThumbnail其实也是使用的MediaMetadataRetriever,如下源码Glide项目中一般会使用图片加载框架如Glide,它内部也是支持加载视频作为图片的,亦是使用MediaMetadataRetriever原创 2022-11-24 21:20:52 · 2814 阅读 · 0 评论 -
《Kotlin核心编程》热身篇——Kotlin基础内容总结
Kotlin基础语法类型声明类型声明:类型名放在后面 方法返回值类型,是否需要显示类型声明:表达式函数体(单行表达式与等号),代码块函数体。 方法返回值类型,需要进行显示类型声明的情况:a、是函数的参数;b、是非表达式定义的函数,返回Unit时可不需显示声明;c、是一个递归的函数;d、公有方法的返回值时,建议显示声明,为了更好的代码可读性及输出类型的可控性。var和valvar:varible(变量) val:varible+final 或者value(值),声明的变量是只读变量,引用不原创 2022-05-01 11:16:32 · 1340 阅读 · 0 评论 -
我又拿起了《Kotlin核心编程》
《Kotlin核心编程》是水滴技术团队2019-4-15出版的,也不知道为啥这么火,网上搜Kotlin学习文档、书籍,除了Kotlin官方文档,其他大家极力推荐的就是此书了,读完以后才知道为什么。首先,我是19年8月份入手的Kotlin核心编程,先是读了前面3章,但由于工作原因就先放下来了。不幸的是,今年新型冠状病毒导致的疫情异常严重,从刚开始的武汉封城,到城市小区、乡下农村,封区的封区,...原创 2020-02-18 17:14:45 · 7739 阅读 · 2 评论 -
Kotlin 实现 Android 系统悬浮窗
Android 弹窗浅谈我们知道 Android 弹窗中,有一类弹窗会在应用之外也显示,这是因为他被申明成了系统弹窗,除此之外还有2类弹窗分别是:子弹窗与应用弹窗。应用弹窗:就是我们常规使用的 Dialog 之类弹窗,依赖于应用的 Activity; 子弹窗:依赖于父窗口,比如 PopupWindow; 系统弹窗:比如状态栏、Toast等,本文所讲的系统悬浮窗就是系统弹窗。系统悬浮窗具体实现权限申请<uses-permission android:name="android.p原创 2021-12-13 20:33:48 · 4250 阅读 · 2 评论 -
Kotlin 泛型 | 02. 高阶 - 型变
三、泛型型变:协变、逆变与不变3.1 协变3.1.1 基本定义如果在定义的泛型类、接口和泛型方法的泛型参数前面加上 out 关键词,说明这个泛型类、接口和泛型方法是协变。也就是说,A 是 B 的子类,那么 List<A> 也是List<B> 的子类。 class Demo { interface Producer<out T> { // 在泛型类型形参前面指定 out 修饰符 val s...原创 2021-07-29 15:23:12 · 430 阅读 · 0 评论 -
Kotlin 泛型 | 01. 基础
一、泛型1.1 含义参数化类型,用尖括号这种方式表示,如<T>、<E>、<?>等。比如:方法的参数一般指定具体类型,如果把参数的类型也参数化,那这就是泛型本尊了。总的来说,泛型本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。1.2 好处让类型更加安全。编译时类型检查。将错误暴露在编译期,不用等到运行时(防止...原创 2021-07-24 16:43:44 · 312 阅读 · 1 评论 -
Kotlin的接口支持方法默认实现和抽象属性
Kotlin对于接口的设计和Java并不完全相同,它增强了接口的功能,包括如下两个:接口方法支持默认实现、接口中支持抽象属性。例子如下:interface Flyer { val speed: Int val height get() = 1000 fun kond() fun fly() { println("I can fl...原创 2020-02-18 22:53:51 · 6271 阅读 · 0 评论 -
Kotlin实现策略和模版方法设计模式
策略设计模式做的事情就是,将不同的行为策略进行独立封装,与类在逻辑上解耦。根据不同的上下文,切换选择不同的策略,然后用类对象进行调用。有如下例子,一个游泳运动员会蛙泳、仰泳、自由泳多种游泳姿势,我们可以将游泳这个行为封装成接口,根据不同的场景我们可以调用不同的游泳姿势,如下代码所示:package com.agg.kotlinapplicationinterface SwimStra...原创 2020-02-16 16:25:43 · 747 阅读 · 0 评论 -
Kotlin实现工厂方法和抽象工厂设计模式
工厂方法设计模式,它的核心作用就是通过一个工厂隐藏对象实例的创建逻辑,而不需要暴露给客户端,实现解耦。典型的使用场景就是当拥有一个父类与多个子类的时候,我们可以通过这种模式来创建子类对象。比如下面的业务场景:一个电脑加工厂,同时生产个人电脑和服务器主机。interface Computer { val cpu: String companion object Facto...原创 2020-02-15 18:39:10 · 1490 阅读 · 0 评论 -
Kotlin实现访问者设计模式
访问者设计模式,是GoF阐述的23中常见设计模式中,行为型设计模式的一种。访问者设计模式,表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素类的前提下定义作用于这些元素的新操作。使用该设计模式可以让我们能够访问到各个元素,于是我们可以将相关方法的实现放在类的外部,这样就可以使得类不再臃肿。下面是具体的代码实现:sealed class Target { abstr...原创 2020-02-15 17:22:33 · 565 阅读 · 0 评论 -
Kotlin的访问控制
Kotlin的访问控制分为限制修饰符与可见性修饰符 。限制修饰符当你想要指定一个类、方法及属性的修改或者重写权限时,你就需要用到限制修饰符。限制修饰符包括:默认(final)、open、abstract、sealed。由于Kotlin中类、方法及属性默认是final,不可被继承或重写的,所以要继承或重写必须加上open。Kotlin与Java的限制修饰符比较限...原创 2019-08-09 16:04:37 · 1241 阅读 · 0 评论