自定义博客皮肤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 AAC】第三篇 ViewModel源码解析

前言 先看一个ViewModel的使用例子,这里使用Kotlin语言(读者不该困惑于语言,主要是看用法,Java的类似,不懂欢迎留言): class ShareViewModel : AndroidViewModel { private val userLiveData:MutableL...

2019-08-14 16:07:21

阅读数 67

评论数 0

原创 【Android AAC】第二篇 LiveData的源码解析

前言 首先看一下如下一个简单的使用例子,本文范例使用Kotlin语言进行介绍,Java版的类似,不懂的可以留言问我哈。 // 1.创建LiveData var loginLiveData:MutableLiveData<LoginEntity> = MutableLiveData<...

2019-08-09 17:28:27

阅读数 65

评论数 0

原创 【Android AAC】第一篇 Lifecycle的源码解析

前言 AAC是Android Architecture Components的缩写,翻译过来就是Android架构组件的意思,是Google IO 2017大会期间发布的一组架构组件,它可以用来帮助开发搭建更加简单便捷的APP架构。AAC里面涉及到了LiveData,ViewModel,其中Liv...

2019-08-08 20:50:09

阅读数 105

评论数 0

原创 Gradle私服上传自己的库项目

nexus私服(3.14) 下载地址:https://www.sonatype.com/download-oss-sonatype 安装: 管理员身份运行cmd,进入nexus bin目录,nexus /install nexus nexus /run(之前版本用bat...

2018-12-22 22:36:22

阅读数 598

评论数 0

原创 Android沉浸式状态栏

在使用沉浸式状态栏时需要注意设置的沉浸颜色为白色还是其他深色的区别 1. 状态栏字体图标黑色(深色) // 5.0以上系统状态栏透明 if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { Window win...

2018-12-14 17:00:57

阅读数 158

评论数 0

原创 Android自定义圆角矩形ImageView,支持Glide加载图片及颜色填充

前言:  之前用到圆角的情况大都是自定义一个shape背景drawable及用到v7包下的CardView包裹View实现圆角矩形效果,还有就是在用户圆形头像的时候需要使用到圆角矩形(圆形可以看做是特殊的圆角矩形),诸如Button,Editext,TextView的圆角矩形颜色背景可以用sha...

2018-05-14 11:43:40

阅读数 3166

评论数 1

原创 Android自定义PopupWindow,高仿炫酷的IOS对话框

前言:  最近在使用IOS系统的过程中发现IOS底部弹出框甚是漂亮,大气,上档次,于是乎就想啊能不能在Android中实现类似的对话框呢?你说,这不是废话吗,除了一些极少数的系统级的不能模仿外(版权)还有啥不能依瓢画葫芦的呢,所以啊,这篇文章将介绍如何在Android中实现高仿IOS对话框效果,...

2018-05-12 20:39:59

阅读数 898

评论数 0

原创 Android自定义Dialog,炫酷主流的加载对话框

前言  最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除两个按钮的对话框我们可以通过代码创建一个AlertDialog并通过它暴露的一系列方法设置我们自定义的布局和style,但有时候系统的AlertDial...

2018-05-12 11:59:14

阅读数 3252

评论数 1

原创 Android自定义RecyclerView分割线,打造无边缘分割线

前言:  现在的RecyclerView几乎已经完全取代ListView和GridView了,已经几年没使用ListView和GridView了,想当年还需要自己在getView方法中复用convertView。而现在的RecyclerView一出生就被设计成convertView复用的,尽管你...

2018-05-02 22:01:58

阅读数 1840

评论数 0

原创 Android自定义ViewPager图片指示器,兼容实现底部横线指示器

前言  记得以前自己使用过的ViewPager Indicator有JakeWharton大神的开源库ViewPagerIndicator,v4包自带的PagerTitleStrip以及Android Support Design库的TabLayout。它们基本上可以实现项目中常见的ViewPa...

2018-04-22 16:05:40

阅读数 1858

评论数 0

原创 Android自动填充短信验证码

前言 短信验证码获取并自动填写现在已经成为一个人性化App的标配了,这篇文章将实现一个短信验证码获取并自动填写的demo。其实就是读取指定号码的短信并提取出验证码,然后赋值给EditText显示。demo效果图:读取短信 Android系统在接受到一条短信的时候会发出一条Action为androi...

2017-09-28 15:28:23

阅读数 3339

评论数 0

原创 Android开发技巧之使用自定义注解

前言 一些优秀的开源框架如比较早的xUtils网络加载框架及现在最新版本的greenDao 3.X ORM框架支持注解,注解的使用可以使得我们的代码架构变得更加清晰,同时也更能体现出面向对象语言的继承的特征及反射机制的强大。我们在Android开发过程中可以使用注解来优化我们的代码结构。Java注...

2017-09-28 10:17:11

阅读数 984

评论数 0

原创 Android视图动画浅析

视图动画 视图动画共有四种,分别为透明度,旋转,平移,缩放动画,如同名字所说一样,它是一种视图上的动画,改变的只是视觉上的效果,实际上View的属性如位置,大小,透明度等并没有受到动画的影响。下面将演示四种视图动画的代码及xml定义使用。代码定义:public void alpha(View v)...

2017-09-19 18:54:44

阅读数 743

评论数 0

原创 Android使用ViewDragHelper实现侧滑菜单(一)

前言 对于处理View的滑动,除了Android实现滑动的几种方式写到的四种外,Android v4包中还提供了一个ViewDragHelper类来帮助我们更加方便地处理滑动事件,ViewDragHelper使得View与View之间的滑动交互更加简单方便。不过在学习ViewDragHelper处...

2017-09-16 09:56:48

阅读数 984

评论数 1

原创 Android实现滑动的几种方式

前言 View的滑动对于View交互性及效果有很大影响,我们可以通过5种方式来实现View的滑动,准确地说是View位置的改变。要改变View的位置,首先我们需要了解Android的坐标系,因为View的是通过坐标来定位的。绝对坐标系 Android系统中,屏幕的最左上角为坐标原点,如下图所示。屏...

2017-09-14 15:24:24

阅读数 2921

评论数 0

原创 testBatchAndFlush(android.hardware.cts.SensorTest): WaitForFlush | sensor='PROXIMITY'

这项是测试proximity sensor,也就是近距离传感器,需要注意以下两项: 在拨号界面输入*#6804#选择Psensor,校准它的精度。 在测试过程中用手遮挡住Psensor(一般在摄像头另一侧)

2017-09-11 17:54:42

阅读数 1098

评论数 0

原创 Android事件的分发与拦截机制

前言 Android为我们提供了丰富的View及ViewGroup控件,使得我们可以轻松的地完成Android应用界面的绘制,同时还可以自定义精美的View控件。绘制一个界面往往需要众多的View及ViewGroup不断嵌套,由于View可能需要与用户交互,如Button响应用户的点击,EditT...

2017-09-11 16:00:47

阅读数 860

评论数 0

原创 CTS,GTS,CTS Verifier失败项总结(持续更新)

在CTS,GTS,CTS Verifier测试中经常会遇到许多问题,需要寻找相应的解决方法以便通过测试,出来IP V6及Google 豁免项外不允许出现其他问题。那么其他问题通常又会是由以下一些原因导致的。 软件问题(软件人员配置或是定制Framework导致) 驱动问题(如Camera2问题) ...

2017-09-07 14:04:21

阅读数 5055

评论数 0

原创 Android N 多窗口模式

前言 在智能手机更新换代越来越快,手机屏幕越来越大,手机可以做的事情越来越多,人们已经离不开智能手机了,甚至有的人开始在用手机办公了。在大屏幕手机上,如果一个手机可以一边播放视频,一边上着网,那种体验是非常爽的。终于,在Android 7.0(N)(API 24)引入了多窗口(Android N ...

2017-09-01 16:47:59

阅读数 911

评论数 0

原创 Android运行时权限

前言: Android 6.0(api23)引入了运行时权限,它允许应用程序在运行的时候请求权限而不像5.1及更低版本一样在安装的时候请求权限。这样一来,需要请求危险权限(涉及到用户隐私…)的应用在安装的时候就不需要请求权限了,而5.1以前如果安装的时候请求的权限没有通过的话应用就安装不了。同时,...

2017-08-30 19:09:57

阅读数 603

评论数 0

原创 浅谈BroadcastReceiver

前言: 广播作为Android四大组件之一,类似于现实生活中的广播,经常用来传递及处理消息,有时候我们的应用程序需要在特定的情况下执行不同的逻辑,如系统开机,网络状态的变化,电源电量的变化…,这些都需要通过广播来实现。不仅如此,有时候我们还需要为我们的程序自定义广播,实现相应的逻辑功能。广播分为标...

2017-08-29 21:06:09

阅读数 330

评论数 0

原创 Android百分比布局库

前言: Android在6.0(api23)引入了百分比布局库,这个库以support包的形式供我们使用。以前的那几种布局中要实现等比分割布局只有LinearLayout的layout_weight属性可以轻松实现,现在不同了,有了这个百分比布局库我们可以更加方便灵活地百分比分割我们的布局,从而使...

2017-08-29 19:42:27

阅读数 796

评论数 0

原创 Activity的四种启动模式

前言: Activity为什么会有启动模式? 我们可以想想Activity作为Android四大组件中使用最多的一个,经常需要使用Activity将界面显示给用户,这也就设计到了Activity的频繁创建新的Activity(切换Activity)或是已经启动的Activity再次启动(切换回来)...

2017-08-26 16:25:14

阅读数 263

评论数 0

原创 Activity之间数据相互传递

不同的Activity之间可以相互传递数据,针对以下两种情况可以有两种方法传递数据,相同的地方都是通过Intent进行数据的传递。 1、前后Activity的数据传递 前一个Activity(A)启动后一个Activity(B)可以在intent中通过putXXX方法添加相应的数据,B则可以通...

2017-08-25 17:43:22

阅读数 1496

评论数 0

原创 【Android】DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs

问题描述:Android Studio在安装应用的时候弹出一个安装失败需要卸载应用的窗口,点击OK后Run控制台显示DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs错误。解决办法:该问题是因为手机安装内存不足,卸载一些软件重新运行安装...

2017-08-25 16:01:09

阅读数 431

评论数 0

原创 Android开源框架greenDAO 3.X的使用

前言 greenDAO是greenrobot Open Source Libraries的一个开源框架,同时greenrobot Open Source Libraries还有一个优秀的开源框架EventBus。greenDAO是用来替代Android原始的SQLite数据库操作以便节约开发者开发...

2017-08-19 05:40:08

阅读数 818

评论数 0

原创 Java实现常见的排序算法

1、冒泡排序基本思想:比较两个相邻的数,如果满足条件则交互顺序(从小到大还是从大到小),这样数组中的元素就会像气泡一样由底部上升到顶部。Java代码示例:/** * @param arr 待排序的数组 */ public static void bubbleSort(int[] arr) { ...

2017-08-17 09:03:42

阅读数 136

评论数 0

原创 Android反编译,修改apk启动页

前言 不得不说自从有了IDE之后,很多原本很基本的开发命令开发步骤似乎被人们慢慢淡忘了,特别是Android开发,先是eclipse+adt作为Android开发的IDE,到现在的Android Studio2.3.3的功能可谓是如此得强大,编译速度越来越快。然而很多基础的东西却被这强大的IDE悄...

2017-08-14 19:18:49

阅读数 4951

评论数 1

原创 面向对象的六大原则

一、 单一职责原则  正如字面上所说,这一原则体现在“单一”二字,描述的是一个类的职责应该是单一的,与该类无关的功能或者完全不一样的功能不应该出现在该类中,而需要将该类所具有的功能独立出来。而这个类中仅有的是一组相关性很高的函数,数据的封装。

2017-08-10 16:27:15

阅读数 178

评论数 0

原创 Android Preference初探,另一种布局方式

记得android五大数据存储中有个SharePreferences,其他四种分别是: SQLite数据库 ContentProvider(内容提供者) 文件存储 网络存储 这里简单回顾一下SharePreference是的使用:// 1. 得到sharedPreferences,第一个参数指定S...

2017-03-17 20:09:08

阅读数 3765

评论数 0

原创 Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enable

问题描述: 在android studio运行app的时候出现这个问题导致android studio无法运行module。解决方法: 根据错误描述,使得ADB integration可用就行,即android studio:Tools->android->Enable ADB int...

2016-05-02 21:55:39

阅读数 834

评论数 0

原创 Android异步更新UI的几种方法

前言:我们知道在android开发中不能在非ui线程的其他线程中更新ui,但是,有的时候我们需要在代码中执行一些诸如访问网络、查询数据库等耗时操作,为了不阻塞ui线程,我们时常会开启一个新的线程(工作线程)来执行这些耗时操作,然后我们可能需要将查询到的数据渲染到ui组件上,那么这个时候我们就需要考...

2016-04-26 12:37:54

阅读数 9641

评论数 2

原创 Android5.0 xUtils报错IOException: stack size 1036kb

这时xUtils低版本在android5.0上的一个bug,将xUtils的jar包替换成最新版本的就行,目前最新版本为2.6.14,下面是下载地址:GitHub下载地址:https://github.com/wyouflf/xUtilscsdn下载地址:xUtils-2.6.14

2016-04-16 17:24:12

阅读数 948

评论数 0

原创 c++类型转换

前言:c++提供了四种类型转换,分别是static_cast,reinterpret_cast,dynamic_cast,const_cast。它们都有各自的运用场景.语法形式(四种都一样):Type dist = *_cast<Type>(src);1. static_cast(静态...

2016-04-16 12:05:02

阅读数 660

评论数 0

原创 c++类模板遇上static关键字

前言:  在c++中我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。  在c++中,我...

2016-04-10 21:42:42

阅读数 6165

评论数 1

原创 c++函数模板和类模板

一、函数模板 定义形式: template ...> return-type func-name(parameter list) { // 函数的主体 } 说明: type1和type2…是占位符,用来泛指任意类型,如T,K…。 template和typename是关键字;...

2016-04-10 21:42:11

阅读数 759

评论数 0

原创 c++友元函数及运算符重载

前言: c++的类和java的类机制着实不大一样,不仅仅是语法,还包括一些特殊的东西,如c++用友元函数来破坏类的封装性,使得外界(友元函数体)可以访问类的私有属性,而java呢,java则可以通过反射机制类在类的外部访问类的私有属性,从而破坏类的封装性,而不仅这点,java中没有什么运算符重载,...

2016-04-10 21:39:53

阅读数 2161

评论数 0

原创 python数据类型

1. 数据类型分类python大约有以下8种数据类型,分别是: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) None(空类型) Object(对象类型) Number类型: Python3 中支持 int、fl...

2016-04-08 21:00:38

阅读数 2866

评论数 2

原创 Material Design (四),AppBarLayout的使用

前言  AppBarLayout,顾名知意,就是用来给AppBar布局的容器,是LinearLayout的子类。而AppBar就是我们通常所知道的ActionBar,Toolbar。 AppBarLayout要点: 功能:让子View(AppBar)可以选择他们自己的滚动行为。 注意:需要...

2016-03-19 21:44:47

阅读数 6950

评论数 2

原创 Android 5.X Toolbar+DrawerLayout实现抽屉菜单

前言 android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,由于以前的ActionBar的灵活性比较差,所以google逐渐使用Toolbar替代ActionBar,所以Toolbar也叫作超级ActionBar,是ActionBar的加强版。这篇文章不详细...

2016-03-17 19:16:13

阅读数 3297

评论数 2

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