自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编码之路

选择相信,相信自己,相信未来,相信美好!

  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 Robolectric首次运行问题

当你大概看了下如何使用Robolectric后,是不是就急不可耐的开始上手练习了呢?配置了依赖项,编写个测试类,再简单写个测试方法,点击run……等了好久,是不是疑惑:怎么这个测试方法还没执行完成? 那你是不是卡在了下面这个步骤?或者发现报了个莫名其妙的错误?类似于下面这样?[Robolectric] com.tavultesoft.kmea.packages.PackageProcessorTest.test_load_GFF_KMP_keyboards: sdk=28; resources=B

2021-01-24 21:51:14 556 2

原创 学习笔记:DataBinding(二): 数据绑定

本节学习使用可观察的数据对象,也是单向数据绑定使用DataBinding,我们可以使用之前我们已知的基本类型、引用类型数据,但这些数据的改变不会使UI自动更新。DataBinding为我们提供了数据驱动视图的可观察数据对象:: objects(对象), fields(字段), collections(集合)。使用它们绑定UI,当这些对象的属性发生改变,UI会自动更新。Observable...

2019-11-09 15:34:51 743 1

原创 Android Studio 文件提前结束

正在运行项目时,突然停电,再打开项目时,总是编译失败,报错 : 文件提前结束 !尝试了删除.gradle 、.idea都不行,以为是项目出了问题,删掉重新pull了一份 app代码(工程根文件夹没换,如果新建应该没问题)也不行!最终解决办法:找到项目的根目录,显示隐藏文件,找到/.idea/workspace.xml ,删除,重新编译项目成功幸亏找到了下面这个解答,非常感谢!工具出问题真的...

2019-11-07 17:18:19 1135

原创 学习笔记:DataBinding(一):上手DataBinding

DataBinding是什么数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。使用DataBinding之前: findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }使用DataBindin...

2019-11-07 10:01:31 930

原创 学习笔记:Java基础语法(下)

一、认识面向对象(1)面向对象 面向对象是基于面向过程的编程思想 (2)面向对象的思想特点 A:是一种更符合我们思考习惯的思想 B:把复杂的事情简单化 C:让我们从执行者变成了指挥者 (3)类与对象 A:现实世界的事物 属性 事物的基本描述 行为 事物的功能 B:Java语言中最基本的单位是类。所以,我们要用类来体现事物 C:类 成员变量 事物属性 成员方法...

2019-10-14 10:44:28 105

原创 学习笔记:Java基础语法(上)

1. 关键字(1)被Java语言赋予特定含义的单词(2)特点: 全部小写。(3)注意事项: A:goto和const作为保留字存在。 B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记2. 标识符(1)就是给类,接口,方法,变量等起名字的字符序列(2)组成规则: A:英文大小写字母 B:数字 C:$和_(3)注意事项: A:不能以数字开头 B:...

2019-10-13 14:29:59 206

原创 windowSoftInputMode

今天在项目中遇到了一个软键盘遮挡住输入框的特殊案例,经过和搭档的研究,终于完美解决了。写下这篇文章,记录一下,顺便回顾学习windowSoftInputMode系列属性以及软键盘的相关知识。windowSoftInputMode下面是windowSoftInputMode的DocumentationFormats: flagValues: adjustNothing, adjustPa...

2019-10-13 14:12:20 263

原创 maxEms和maxLength的区别

1. maxWidthmaxWidth指的是控件自己的最大宽度,当控件的属性layout_width=”wrap_content”时生效,若layout_width指定了具体的值,则maxWidth失效。2. maxLengthmaxLength限制TextView中显示的字符的个数。需要特别注意的是,在这里汉字、数字、英文字母、标点符号等,都理解为一个字符。maxLength属性会使...

2019-10-13 14:12:06 1606

原创 签名文件修改

1. 开始win+r > cmd进入命令行,切换到签名文件所在文件夹2. 修改签名文件的别名alias:keytool -changealias -keystore 签名文件名称 -alias 原别名 -destalias 新别名回车后输入密码确认3. 修改签名文件的别名alias对应的密码:keytool -keypasswd -keystore 签名文件名称 -a...

2019-10-13 14:11:44 797

原创 RxJava 速查

文章目录一、RxJava、RxAndroid二、角色三、事件四、操作符五、调度器一、RxJava、RxAndroidRxjavaRxJava: Reactive Extensions for the JVM异步、观察者模式扩展、函数式编程RxAndroidRxAndroid: Reactive Extensions for AndroidRxAndroid是RxJava的一个针对A...

2019-10-13 14:10:46 113

原创 启动页设置全屏并适配刘海屏

需求:启动页是一张图片,希望设置为全屏显示,包括状态栏和导航栏(虚拟按键),同时也适应刘海屏正确的设置方式:values/styles.xml<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/col...

2019-10-13 14:06:46 2835 1

原创 Fragment被replace时重复加载数据的问题

Fragment被replace时,会重新走onCreateView()等生命周期,我们写的初始化数据的相关逻辑也会重走,并且重复添加,解决问题的办法有两个##第一种:在fragment中解决private View view;@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,...

2019-10-13 14:05:48 1061

原创 获取资源文件资源数组

在获取图片资源数组时遇到以下问题:在res/value中定义资源文件fileName.xml,定义图片资源数组<?xml version="1.0" encoding="utf-8"?><resources> <integer-array name="store_other_image_array"> <item>@...

2019-10-13 14:05:17 383

原创 自定义View(二)UI加载流程

一、分类在《Android开发艺术探索》中,刚哥将自定义View分为了四种,个人感觉很精确:继承View,创建新View继承ViewGroup,创建新Layout继承现有特定的View进行扩展,如继承Textview自定义字体继承现有特定的ViewGroup,进行自定义组合控件二、构造方法构造函数是View的入口,可以用于初始化一些的内容,和获取自定义属性。...

2019-10-13 14:04:43 246

原创 自定义View(一)基础知识

标签:【Android】UI 【Android】自定义View学习自定义View之前,我觉得要对View有一个深刻的理解,所以,我先找了相关资料进行恶补: 1. 任玉刚-《Android开发艺术探索》 2. 菜鸟窝-从源码角度分析UI绘制流程『公开课回放』 3. GcsSloop-自定义View教程 4. 朱凯-给高级 Android 工程师的进阶手册 5. 谷哥的小弟-自定义...

2019-10-13 14:02:08 308

原创 自定义View(零)自定义属性

一、为什么要自定义属性如果想使用一个属性,那么首先这个属性应该存在,所以,如果我们想在自定义View中扩展一些自定义的属性,我们就应该去创建出来这些属性,否则只能使用View的属性,因为所有的控件都继承自View二、自定义属性的步骤创建自定义Viewpublic class LinearLayout extends ViewGroup {}创建Value/attrs.xml...

2019-10-13 14:00:46 179

原创 Windows上搭建Flutter开发环境

一、系统要求要安装并运行 Flutter ,你的开发环境必须满足这些最低要求:操作系统:Windows 7 或者更高版本(64 位)。磁盘空间:400 MB(不包括 Android Studio 在内的磁盘空间)。工具: Flutter 依赖了你环境中可用的命令行工具。Git for Windows (从 Windows 命令提示符选项中使用 Git )。如果你已经安装了 Git...

2019-10-13 13:58:47 703

原创 Git 速查

文章目录参考Git工作流程专用名词常用命令1. 创建本地仓库2. 配置3. 增加/删除文件4. 提交代码5. 分支6. 标签7. 查看信息8. 远程同步9. 撤销10. 储藏11. 其他忽略文件参考1. 廖雪峰Git教程2. 阮一峰的网络日志《常用Git命令清单》首先,我按照廖雪峰的Git教程学习,将教程中的各种命令实践了一遍,并记录了下来,但比较杂乱;然后发现了阮一峰总结的清单,分类...

2019-08-16 16:22:39 281

原创 Android 权限管理

文章目录一、权限简介二、6.0之前三、6.0之后四、统一管理五、开源方案一、权限简介Android安全体系结构的核心设计点是:默认情况下,任何应用程序都无权执行任何会对其他应用程序,操作系统或用户产生***负面影响***的操作。例如:读取或写入用户的私人数据(如联系人或电子邮件),读取或写入其他应用程序的文件,执行网络访问,保持设备唤醒等等。为了保护Android用户的隐私,避免上述负面影响...

2019-06-25 10:40:50 418

原创 我学习到的一些保险知识

一、知识来源感谢关哥!二、基本概念资产配置是反人性的,保险尤其是保险的本质:风险转移,不确定性、偶然性保险的作用:最基础的作用是解决资金方面的问题避免窘境,例如疾病、意外完成目标,例如子女教育、个人养老保险的特点安全性高,只要你别太提前退保,保险公司倒闭了都不怕,有财产纠纷也能帮你保住一部分财产纪律性强,逼着你每年交钱,不交就失效,不知不觉也攒下一大笔...

2019-01-13 20:23:36 1487

原创 Android三大动画使用总结

动画在Android开发中比较常用,主要有:帧动画、补间动画、属性动画(3.0增加),下面开始学习:一、Frame Animation1、简介Frame Animation,逐帧动画是一种常见的动画形式,其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。简单理解:连续播放准备好的关键帧图片,形成动画2、xml实现先创建帧动...

2019-01-13 11:15:39 3120

原创 ConstraintLayout 约束布局

一、简介ConstraintLayout是一个ViewGroup,它允许您以一种灵活的方式定位和调整小部件的大小。借鉴于iOS中的约束,也是Relative的加强版。android.support.constraint.ConstraintLayout在兼容库中,支持Android API 9也就是Android2.3及以上系统版本,拖拽操作进行可视化布局需要在Android Studio ...

2018-12-19 18:22:40 716

原创 Android Fragment总结

一、简介Android 在 Android 3.0(API 级别 11)中引入了Fragment,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持。Fragment 表示 Activity 中的行为或用户界面部分。您可以将多个Fragment组合在一个 Activity ...

2018-12-17 14:32:57 427

原创 Android四大组件之ContentProvider

一、简介ContentProvider管理对结构化数据集的访问。它们封装数据并通过ContentResolver接口将其提供给应用程序,并提供用于定义数据安全性的机制。只有在需要在多个应用程序之间共享数据时,才需要内容提供程序。例如,联系人数据由多个应用程序使用,必须存储在内容提供程序中...

2018-12-17 14:30:05 214

原创 Android四大组件之BroadcastReceiver

一、简介用于接收和处理Context.sendBroadcast(Intent)发送的广播意图的代码的基类。您可以使用Context.registerReceiver()动态注册该类的实例,也可以使用AndroidManifest.xml中的 &amp;amp;amp;lt;receiver&amp;amp;amp;gt; 标记 ...

2018-12-17 14:27:04 179

原创 Android四大组件之Service

一、 Service简介Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。其他应用组件启动服务,而且即使用户切换到其他应用,服务仍将在后台继续运行。 组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/...

2018-12-17 14:25:12 205

原创 Android四大组件之Activity

一、简介Activity是Android四大组件之一,对应着应用的一个个界面。Activity实现了Window.Callback和KeyEvent.Callback两个接口,所以用户通过屏幕点击或点击按键可以和Activity交互。创建Activity就是继承Activity创建子类,必须在清单文...

2018-12-17 14:20:46 373

原创 Android必知又爱忘的知识

一、Android是什么?Android是世界上最受欢迎的移动操作系统,使用于手机,手表,平板电脑,电视等数十亿设备Android是一种基于Linux的开源的操作系统主要使用于移动智能设备,如智能手机、平板电脑和智能电视等二、Android发展历程2003年,Android操作系统由Andy Rubin的Android公司开始开发2005年,Google收购Android公司2...

2018-11-27 11:05:54 233

原创 Android 开发环境搭建

Android开发环境搭建和Java开发环境搭建类似,只不过是开发工具不同。1. JDK下载安装配置参阅JDK下载安装与环境变量配置2. Android studio下载安装下载地址一:AndroidDevTools 下载地址二:Android Developers 下载完成后,傻瓜式安装,一直点击下一步即可3. Android studio配置参...

2018-04-22 13:58:40 1372

原创 Java 开发环境搭建之Eclipse下载安装配置

一、下载下载地址:Eclipse 官网有些慢,稍等片刻到弹出下载提示框,下载保存即可;格式是zip压缩文件,下载完成解压即可使用,省去了安装步骤二、Eclipse 基本配置1. 编码格式设置2. 字体设置3. 代码提示设置输入“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX...

2018-04-22 13:52:51 357

原创 Java开发环境搭建之JDK下载安装与环境变量配置

1. JDK下载注意:根据电脑操作系统选择32位还是64位的JDK,安装错误会导致安装开发软件eclipse时出错2. JDK安装双击下载的JDK文件,一直点击下一步即可,傻瓜式安装。注意: 1. 建议开发类需要装的软件,单独创建文件夹,分门别类,便于管理,同时文件夹名称注意最好不要带有空格和汉字 2. jdk安装完成后,会继续让安装jre,直接安装就行,和jdk放...

2018-04-22 13:50:36 2418

原创 了解 Java

一、Java 发展历程Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发1995年5月23日,Java语言诞生1996年1月,JDK1.0诞生1999年6月,SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微...

2018-04-22 13:48:21 399

原创 Android studio偏好配置

窗口字体设置控制台字体设置Logcat颜色设置 级别 颜色VERBOSE BBBBBBDEBUG 0070BBINFO 48BB31WARN BBBB23ERROR FF0006ASSERT 8F0005快速文档设置代码字体设置代码背景设置(护眼模式)自动导包设置代码提示...

2018-04-09 17:18:18 3009

原创 GridLayout 使用总结

一、简介GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套。也算是常用,但一直没仔细看过,今天研究一下二、常用属性介绍GridLayout 使用属性 属性 作用 android:columnCount 最大列数 android:rowCount 最大行数 android:orientation Gr...

2018-03-27 13:20:17 48967 3

原创 Java中的instanceof和isInstance

1. instanceof 是一个操作符使用方法:if(a instanceof B){}表示:a 是不是 B 这种类型2. isInstance是Class类的一个方法public boolean isInstance(Object obj)使用方法:if(B.Class.isInstance(a)){};表示: ...

2018-03-25 18:05:24 6493 1

原创 常用DOS命令

一、 打开DOS控制台的方式开始–程序–附件–命令提示符开始–运行—cmd—回车win+r—cmd–回车二、常用DOS命令d(盘符) : 回车 盘符切换 dir(directory) : 列出当前目录下的文件以及文件夹 md (make directory) : 创建目录 rd (remove directory) : 删除目录 cd (change direct

2018-03-23 10:25:54 179

原创 View.inflate()和LayoutInflater.inflate()的区别

一、LayoutInflater.inflate()该方法适用于所有布局填充的的场景,但使用前需要先实例化LayoutInflater对象1. 获取LayoutInflater实例getLayoutInflater();这个方法可以在Activity和Fragment中使用,不过在Fragment中使用时,要传入一个bundle参数// Activity中使用LayoutInflater layoutInflater = getLayoutInflater();// Fragment中使用

2018-03-01 11:42:17 7264 2

原创 ViewPager 全面总结

一、简介Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android studio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。Viewpager使用起来就是我们通过创建adapter给它填充多...

2018-03-01 11:41:14 83422 21

原创 学习笔记:SpannableString的使用

1. 简介SpannableString其实和String一样,都是一种字符串类型,同样TextView也可以直接设置SpannableString作为显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。2.

2018-02-06 16:39:01 384

原创 面试笔记:Android 基础

文章目录25. Android 数字签名24. Android 中布局的优化措施都有哪些?23. android:layout_gravity 和 android:gravity 的区别?22. Padding 和 Margin 有什么区别?21. 什么是 ANR 如何避免它?20. Android中的动画19. Android中的常用布局18. Android中的四大组件17. Androi...

2018-01-22 09:14:39 529 2

《疯狂Android讲义》(kotlin版) 源码 17章

《疯狂Android讲义》(kotlin版) 随书源码第17章,由于大小限制和本章源码较大,单独上传

2018-12-14

空空如也

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

TA关注的人

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