自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 SharedPreferences源码分析

一、SharedPreference简介SharedPreference是Android系统提供的轻量级数据存储方案,常被简称为SP。采用key-value的数据存储方式,数据存储媒介是XML文件。用于存储App的配置、账号等轻量级数据信息,是常用的外部存储数据方案。二、SharedPreference用法SharedPreference用法比较简单,包括读取、和写入两种用法。1)写入S...

2019-05-21 11:40:33 162

原创 okhttp源码分析

一、okhttp简介OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient)。现在在Android开发中最火的应用最多的联网框架毫无疑问是okhttp,目前已经大量替代了Volley、HttpUrlC...

2019-04-03 15:51:40 315

原创 Lifecycle源码分析

一、Lifecycle简介Lifecycle是 Android Architecture Components架构设计方案中的生命周期管理框架。也是LiveData、ViewModel搭建MVVM架构的基础,目前在SupportActivity(AppCompatActivity的父类)和Fragment中都已植入这个框架。Lifecycle优点:1)无侵入式监听生命周期。2)对需要与Ac...

2019-03-14 18:24:46 229

原创 LiveData源码分析

一、LiveData简介       LiveData是google官方架构JetPack系列的一个响应式开发框架,LiveData是一个可以被观察的数据持有者类。说到响应式开发或者说观察者就不免想到RxJava,RxJava将观察者模式运用的炉火纯青。但LiveData和RxJava的定位是不一样的,LiveData主要用于搭建MVVM架构,并在其中作为...

2019-03-14 15:37:18 141

原创 ViewModel源码分析

一、ViewModel的简介 2018年谷歌IO大会上正式发布了JetPack组件,其中包括Databing、Lifecycles、LiveData、Navigation、Paging、Room、ViewModel、WorkManager等一系列框架。并且发布androidx包,这些框架的最新版本组件将引入到androidx包下。 JetPack架构组件的发布,意味着goog...

2019-03-12 20:30:21 195

原创 自定义解析Html标签

     Android支持部分原生Html标签,通过textview.setText(Html.formHtml(s))方式将文本以Html的方式格式化显示在TextView中。在Android-25以上的SDK支持大部分标签,包括<font/>、<span/>标签等等。但在不同的SDK版本上对标签的属性上支持不一样,在Android SDK-25以下版本<span...

2018-03-28 16:23:31 1751

原创 Android6.0权限管理框架:EasyPermisssion、

转至元数据起始 Android6.0权限管理:  1.EasyPermission:   导包:   compile 'pub.devrel:easypermissions:0.1.9'1.重写要申请权限的Act...

2018-03-20 19:31:45 2639

原创 ViewPager和RecyclerView缓存View的问题

在安卓中ViewPager和RecyclerView是常用控件,这两个控件的关键特点是存在缓存。可以提升App效率,对于重用View来讲不必去多次加载View。对于Android系统来说,LayoutInflate加载View本质上是需要时间的,即便这个时间可能会很短。所以对于缓存机制来讲是很必要的。但是对于缓存View来讲需要注意一些的问题。处理不很可能会造成复用上的问题。所以对于复用Vie

2017-11-23 11:17:48 1077

原创 Android高版本上采用低版本对话框样式

在开发中随着版本的升级各种对话框的样式会随着改变,在Android5.0以后推出了AppCompatActivity,采用了最新的样式,但是如果仍然想用5.0以前的对话框样式又不会对新的样式产生影响就可以采用继承Activity的方式,并自定义设置Activity的theme来达到效果。第一步:public class BaseActivity extends Activity

2017-04-01 11:37:50 289

原创 Android自定义多层水纹波浪效果

public class Weave extends View{ //画笔 private Paint mPaint; //抗锯齿 private DrawFilter mDrawFilter; //屏幕宽 private int screenWidth; //屏幕高 private int screenHeight; //波

2017-02-16 16:34:12 648

原创 自定义带提示的文本输入框

Android自带AutoCompleteTextView,功能是在输入的是否完成提示功能,需要根据输入内容进行提示,空内容没有提示。在项目中不满足需求,要求需要类似于可输入内容的下拉框。根据AutoCompleteTextView源码进行自定义实现功能。代码: /** * 带自动提示功能的EditText */public class MyEditText extends

2017-01-09 11:32:21 876

原创 Android数据库更新解释

一、何为android数据库更新     对于android软件app来说,很多的app都需要进行产品迭代更新,对于不同的版本app来说所需要的数据库表结构可能会不同,所以在进行app的升级是需要进行数据库的更新,简单来说就是对数据库的表结构、表的数量进行更改。二、数据库更新的方法onUpgrade     onUpgrade方法是在数据库更新时系统调用的方法。对于软件更新

2016-12-20 10:48:17 395

原创 zxing二维码扫描界面销毁问题

InactivityTimer控制扫描界面销毁时间控制public final class InactivityTimer {        private static final class DaemonThreadFactory implements ThreadFactory {          @Override          public Th

2016-11-22 21:17:56 1399

原创 Android BindService出现的问题

android

2016-11-10 14:34:40 269

原创 AndroidStudio导入Eclipse项目造成.9图片报错的问题

一般AndoridStudio导入一个Eclipse项目.9图编译都不会过,解决方法:关闭AndroidStudio的PNG合法性检查,一般采用关闭.9图合法性检测。在build.gradle里的buildToolsVersion下面添加以下两句:aaptOptions.cruncherEnabled = false aaptOptions.useNewCrun

2016-11-04 11:22:27 332

原创 ListView跳坑之路

ListView 中的布局控件最好设置宽度高度,尤其是高度,要么指定像素,要么匹配父布局,否则容易在滑动过程中由于控件绘制产生空指针异常。

2016-08-13 20:28:56 190

空空如也

空空如也

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

TA关注的人

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