自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android ConstraintLayout从入门到精通

文章目录一、前言 一、前言     大家都知道,在Android中是通过布局来定义应用中的界面结构,随着版本的更新迭代,有些布局类型因为适用性退出了历史的舞台,例如:AbsoluteLayout。也增了一些布局类型,例如本文提到的 ConstraintLay...

2020-06-30 17:42:32 55 0

原创 Android 应用链接详解

文章目录一、Android 应用链接简介1.1 深层链接和 Android 应用链接1.1.1 深层链接1.1.2 Android 应用链接二、Android 应用链接的使用2.1 添加 Android 应用链接 一、Android 应用链接简介     在...

2020-05-19 18:55:33 97 0

原创 Android导航组件Navigation从入门到精通

一、前言     传统的应用开发,一般都是采用一个界面一个 Activity 的形式,但是大家都知道, Activity 在 Android 中是属于重量级的组件,从而导致程序资源消耗大,用户体验不佳。而导航组件 Navigation 采用的是 Fragme...

2020-05-14 17:14:55 158 0

原创 CSDN博客的MarkDown编辑器实现页内跳转

文章目录一、前言二、实现方法2.1 如何获取标题编号2.2 注意事项三、终极测试 一、前言     之前我在博客上发布过关于 MarkDown 上实现页内跳转的文章(参考:Markdown实用语法之实现页面内跳转),当时主要是基于 小书匠 编辑器的,有些网友...

2020-04-29 13:08:02 103 1

原创 Android使用 WorkManager 调度任务

一、前言     WorkManager属于Android Jetpack的一部分,通过WorkManager API可以轻松第调度可延迟的任务,即使是那些在应用退出或者设备重启时仍需要运行的任务。 WorkManager的主要功能 最高可向后兼容到 A...

2020-04-22 19:25:16 283 2

原创 Kotlin学习笔记——this关键字的限定符

一、前言     在面向对象的开发语言中,我们经常遇到的场景就是在一个类(A)的内部类(B)中,需要引用外部类(A)的当前对象,此时,就需要为this关键字添加限定符,以确定所表示的对象。 二、场景复现 在Java中,this 关键字限定符的使用大家应该都比...

2020-04-13 15:38:24 51 0

原创 Android中强大的标记对象-Span

文章目录一、前言二、在应用中使用标记(Span)2.1 标记(Span)的类型2.2 如何使用标记(Span)三、Android Span的类型3.1 影响文本外观的Span 一、前言     在TextView中对显示的文本进行某些格式化的时候,很多人会首...

2020-03-26 18:04:45 77 0

原创 Android中的神器-放大镜

文章目录一、前言二、放大镜的使用2.1 API调用2.2 在用户交互中使用放大镜三、观后语 一、前言 在Android 9(API level 28)及以上版本,支持放大镜功能,这个功能可以提高文本插入、选择的用户体验,可供用户看清细小的文字,例如:地图上的地名。放大镜功能在系统控件,例如:Tex...

2020-03-16 15:17:22 162 0

原创 XML字体配置

文章目录一、前言二、XML字体配置2.1 创建字体系列(font family)2.2 在XML中使用字体资源2.3 在编码中使用字体资源2.4 使用支持库实现 一、前言 在以往的开发中,开发者都是将字体文件放在assets目录下,在程序运行时加载并设置到TextView中,自从Android 8...

2020-03-09 19:59:28 385 0

原创 Android自动调整字体大小的TextView

文章目录一、前言二、设置`TextView`文本自动调整大小2.1 默认缩放2.2 按粒度缩放2.3 按预设定值缩放三、使用支持库实现文本自动缩放 一、前言     在应用开发过程中,可能需要这样的场景:一个现实区域有限的TextView,但是需要显示不定长...

2020-03-06 18:00:58 256 0

原创 Android中使用可下载字体

可下载字体简介 在Android 8.0(API level 26)和Android Support库26开始提供了从字体提供商下载字体的API接口,用以替代将字体绑定打包到APK文件中,或者让APK下载字体文件。这个功能在Android 8.0(API level 26)及以上版本系统可用,或者...

2020-03-03 17:30:50 167 0

原创 Java/Kotlin JVM中内部类类名的巨坑

特别说明:因为Java和Kotlin JVM机制类似,所以在本文章中采用Kotlin语言,有兴趣的同学也可以自己使用Java语言重现。 前提:在Windows系统下搭建的开发环境(至于为什么指明在Windows系统下,到后面就会知道了) 新建一个Kotlin文件,在内部定义简单的两个数据类,...

2020-02-25 17:01:55 94 0

原创 为AppWidget添加配置Activity

文章目录前言 前言     在构建自己的窗口小部件的时候,为了更加定制化,会根据用户的喜好,让用户选择小部件的样式等,这种情况下,就需要为窗口小部件添加一个配置页面了。在用户添加窗口小部件的时候,会弹出配置页面 关于构建AppWidget相关内容参考:为你的...

2019-12-18 17:59:32 41 0

原创 使用DateFormat格式化时间输出

文章目录1. 前言2. 格式化标准(格式字符标识)3. 使用注意事项3.1 格式字符数量控制显示位数 1. 前言 &nbps;&nbps;&nbps;&nbps;系统时间,需要通过格式化输出才能展示给用户,根据不同地区用户习惯的不一样,展示的方式也有所差别,但是有一...

2019-12-17 12:27:20 39 0

原创 Android数字时钟神一般的实现——TextClock

文章目录前言1. 使用方法2 优缺点 前言     在Android上实现数字时钟,还在自己使用TextView实现?在应用界面还容易,如果在AppWidget中,时间更新将会是头疼的问题,为了解决这些烦恼,Android官方提供了TextClock类,只需...

2019-12-17 10:32:11 461 0

原创 为你的Android应用构建窗口小部件(App Widget)

文章目录1. 基础2. 实现窗口小部件(App Widget)第一步:创建窗口小部件布局文件第二步:添加`AppWidgetProviderInfo`元数据配置     App Widget是微型应用程序视图,可以嵌入其他应用程序(例如主屏幕)中并定期更新内...

2019-12-09 15:13:01 134 0

原创 Android10的那些事

文章目录1. 前言2. 隐私策略方面2.1 不可重置设备标识限制2.2 限制通过API启用/禁用WIFI2.3 访问WiFi配置受限 1. 前言 Android10已经发布,在这里将一些Android 10适配的一些注意事项。 这里只说明部分变动,更多详情请前往Google官方介绍 2. 隐私...

2019-12-05 15:38:51 66 0

原创 Kotlin学习笔记——单例的实现

文章目录前言单例模式单例实现方法 前言     在Kotlin中,不像Java有静态变量和静态方法,那么如何实现单例模式呢?在这片文章中将介绍在Kotlin中如何实现单例模式 单例模式     单例模式(Singlet...

2019-11-01 10:56:25 27 0

原创 Android Plugin DSL——DexOptions

    在Android Gradle插件中,在android内可定义并配置dexOptions,DexOptions对象是用来配置dx选项的(生成dex文件的选项)。 属性 属性名 说明 additionalParameters 生成dex...

2019-10-25 16:22:58 107 0

原创 Kotlin学习笔记——作用域函数

在kotlin的标准库里,提供了一些目的在于以对象为上下文执行代码块的函数,这些函数叫做作用域函数,你可以在一个对象中使用lambda表达式调用这些函数。作用域函数包括let、run、with、apply、also。 示例: val str = "This is a string&quo...

2019-10-23 18:51:30 33 0

原创 Kotlin学习笔记——for语句中使用区间表达式

文章目录前言区间的几种类型`rangeTo`区间`downTo`区间`until`区间区间遍历的间隔 前言 在Java中,使用for语句通过索引遍历数组时,可在for语句中定义临时循环变量,并控制变量的范围和递增,如下示例: String [] array = new String [] {&qu...

2019-10-12 17:26:36 48 0

原创 AndroidStudio自定义dex最大方法数

方法数超过64K的处理 随着软件不断增大,原来dex最大方法数65535的限制导致,为了解决这个问题,Google官方提供了多dex的方案,Google官方说明:为方法数超过 64K 的应用启用多 dex 文件 默认情况下,Android Gradle插件会自动统计方法数,并自动决定将哪些类放入到...

2019-10-10 18:37:01 265 0

原创 Kotlin学习笔记——易错点总结

文章目录1 前言2 语法篇2.1 数字类型之间的强制类型转换内容持续更新中........ 1 前言     刚刚接触Kotlin,会有许多地方需要注意的,特别是本身有Java或者其他开发语言基础的人,更容易掉进这些陷阱。 2 语法篇 2.1 数字类型之间的...

2019-09-19 10:43:14 62 0

原创 Kotlin学习笔记——Android扩展插件之视图绑定

前言 在Android中使用Kotlin语言开发,必须在build.gradle中引入Android Kotlin插件(apply plugin: 'kotlin-android')。但是在Android开发中,Kotlin还提供了一些扩展插件,扩展插件有什么作用呢?下面给大家...

2019-09-18 11:52:24 73 0

原创 Kotlin学习笔记——Lambda表达式

lambda 表达式与匿名函数是“函数字面值”,即未声明的函数, 但立即做为表达式进行传递。在Java 8中也开始支持Lambda表达式。 Lambda表达式语法 lambda 表达式由花括号括起来, 包含完整语法形式的参数声明,参数声明有可选的类型标注, 函数体跟在一个 -> 符号之后。如...

2019-08-19 11:00:11 59 0

原创 Kotlin学习笔记——函数

函数 函数的声明 函数的声明使用关键字fun,格式为 [访问限定符] fun 函数名([参数名: 参数类型])[: 返回值类型] {} fun add(x: Int, y: Int): Int { return x + y; } 函数的调用 普通调用 add(1, 2) 通过类调...

2019-08-13 16:25:01 28 0

原创 Kotlin学习笔记——对象表达式与对象声明

有时候,我们需要在不显示声明子类的前提下,需要声明一个类的对象,并对这个类做了少许的改动,在Java中,使用匿名内部类来实现,而在Kotlin中,用对象表达式和对象声明来实现。 对象表达式 要创建一个继承自某个类(或某些类)的匿名对象,我们可以在这样写: fun main(args: Array&...

2019-08-08 17:09:59 42 0

原创 Kotlin学习笔记——枚举类

枚举类的最基本的用法是实现类型安全的枚举,列出有限的类型; 跟Java不同,Kotlin中声明枚举类是使用enum class(Java中是使用enum) enum class Color() { RED, GRENN, BLUE } 枚举类的每一个枚举,都是枚...

2019-08-07 17:43:18 173 0

原创 Kotlin学习笔记——类嵌套与内部类

嵌套类 在一个类的内部声明一个类,叫做类嵌套。 class Outer(var name: String) { class Inner(var log: Double, var lat: Double) { fun print() { printl...

2019-08-06 18:55:13 26 0

原创 Kotlin学习笔记——密封类

密封类用来表示受限的类继承结构,取值是限定某些值,在某种意义上,他们是枚举类的扩展; 密封类和枚举都是限定某些值,但是也有差别,每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例。 密封类的声明 要声明一个密封类,需要在类名前面添加 sealed 修饰符。虽然密封类也...

2019-08-01 16:02:57 41 0

原创 Kotlin学习笔记——数据类

数据类用关键字data标识 data class User(var name: String, var age: Int) 编译器自动从数据类的主构造函数中声明的所有属性导出以下成员 equals()/hashCode() 对; toString() ,格式为User(name=Marr...

2019-07-16 14:50:32 174 3

原创 Kotlin学习笔记——扩展

    Kotlin 同 C# 类似,能够无需继承该类或使用像装饰者这样的任何类型的设计模式,就能扩展一个类的新功能。 完成这种功能的特殊方法叫做 扩展 。Kotlin 支持 扩展函数 与 扩展属性。 扩展函数     ...

2019-07-15 18:44:10 30 0

原创 Kotlin学习笔记——可见性修饰符

    在Kotlin中,类、对象、接口、构造函数、方法、属性和它们的setter都可以有 可见性修饰符。 (getter 总是与属性有着相同的可见性。) 在 Kotlin 中有这四个可见性修饰符:private、 protected、 internal 和...

2019-07-10 14:11:50 46 0

原创 Kotlin学习笔记——接口

Kotlin 的接口与Java的接口类似,可以声明抽象方法,但是Kotlin不同的是,它还可以包含实现(Java中的接口不能有方法实现)。 与抽象类不同的是,接口无法保存状态。 Kotlin的接口可以有属性但必须声明为抽象或提供访问器实现。 Kotlin可以在接口中定义属性。在接口中声...

2019-07-09 18:12:40 77 0

原创 Kotlin学习笔记——属性与字段

在Kotlin中,属性和字段可以使用关键字var(可变属性)和关键字val(不可变、只读属性), var定义的属性默认有getter和setter,val定义的属性只有getter属性。 属性的定义 定义属性的完整语法如下: var <propertyName>[: <Pr...

2019-07-09 14:29:21 69 0

原创 Kotlin学习笔记——类继承

在 Kotlin 中所有类都有一个共同的超类Any,声明类时如果不指定超类,都是默认继承自Any 注意:Any 和Java的java.lang.Object不同;Any它除了 equals()、hashCode() 与 toString() 外没有任何成员。 更多细节请查阅Java互操作性部分...

2019-07-08 17:54:34 46 0

原创 Kotlin学习笔记——构造函数的一些特性

1. 构造函数的分类 在 Kotlin 中,构造函数分为主构造函数和次构造函数,一个类可以有一个主构造函数以及一个或多个次构造函数。主构造函数是类头的一部分:它跟在类名(与可选的类型参数)后。 class Person constructor(name: String) { } 2. 主构造函数...

2019-07-08 16:21:16 78 0

原创 使用Gradle发布工件到Maven仓库

使用Gradle发布工件到Maven仓库(Publishing Artifacts) 此文章基于Gradle 4.6编写。 1. Maven Plugin(旧版发布插件) 使用Maven Plugin发布Artifcat是旧的插件,新版Gradle有新的插件Maven Publish Plu...

2018-12-21 15:35:58 2988 0

原创 Nexus私服添加用户名密码凭据访问的配置方法

前言 默认情况下,Nexus私服的仓库是允许匿名(anonymous)访问的,也就是任何开发者只要知道你的仓库地址,都可以远程依赖你发布到仓库的库。既然是私服,可能有些库不想要给其他人访问,可以通过设置凭据访问来限制用户访问远程依赖库,最简单的一种就是用户名密码凭据访问。 配置方法 Nexus 服...

2018-10-11 10:06:16 10163 0

原创 Markdown实用语法之实现页面内跳转

  页面内跳转非常实用,在文档描述过程中经常会关联到页面内的其他章节内容,为了方便读者阅读,会需要添加页面跳转的功能;除此之外,页面内跳转,也可以用来手动制作目录。   实现页面跳转的方式也挺简单,可以实现跳转到任意标号的标题,但是也是非常的讲究,否则会出现无法跳转的情况。页面跳转的标记格式如下...

2018-09-06 11:36:18 5736 7

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