自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大公司的开源地址

概述想跟着大神走吗,想学习大神的步伐吗,想使自己的项目变得简单吗,那就看一看个大公司团队的代码吧,下面主要写的就是各大公司的开源地址,可以尽情的学习,现在是单纯的中国的各大团队,有时间把外国的各大团队写一下欢迎持续关注项目地址 github此页面有可能不跟着更新,https://github.com/niezhiyang/open_source_team会持续更新目录(中国)1.阿里巴巴阿

2017-09-12 10:26:56 1290

原创 极其简单的Flutter 屏幕适配

A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案)一 概述由于 Flutter 的应用场景很多,不只是 android 还有 ios 以及 web,现在的手机品牌和型号越来越多,导致我们平时写布局的时候会在个不同的移动设备上显示的效果不同,今天介绍一种方案,可以是一个低成本,但是 100% 还原UI的一种办法,无需使用工具类或者是扩展函数去 转换,直接写 UI设计图给的大小即可二 github 欢迎 starfl

2021-08-16 16:51:05 2184

原创 MVVM-ViewModel介绍与源码解析

一 概述ViewModel 在Activity或者Fragment生命周期内只有一个的存储数据。ViewModel 里面的数据不会因为屏幕的旋转或者其他配置(比如切换到多窗口模式)而丢失。但是在正常的finish()或者按返回键的时候,在Activity或者Fragment走到onDestroy的时候回清除ViewModel里面的数据,避免内存泄漏。虽然屏幕旋转Activity也会走onDestroy,但是会判断是否是因为屏幕旋转而导致的。所以ViewModel是一个很合格的存储数据的类二 ViewMo

2020-06-02 21:01:19 498

原创 Lifecycle介绍以及源码解析

概述Lifecycle是感应Activity、Fragment、Service、Application 的生命周期状态的变化的一个组件,可以减少 Activity或者Fragment的代码逻辑压力二:Lifecycle的感应生命周期 和 Activity真正的生命周期,还有Application注册registerActivityLifecycleCallbacks的调用时期对比现在Activity里面打印各个方法class LifeDemoActivity : AppCompatActivit

2020-06-02 21:00:45 403

原创 Lifecycle介绍以及源码解析

一 概述MVVM 架构是继mvc架构后衍生出的一个新的架构, 最早于 2005 年被微软的 WPF 和 Silverlight 的架构师 John Gossman 提出,并且应用在微软的软件开发中,Android开发中常见的模式,有 MVC,MVP,MVVM。Google15年推出databinding 和 2018年推出 LiveData、ViewModel 库之后,把MVVM正式的应用在 android 上 推进了高潮。本文最后会写一个官方所支持的demo二 MVC、MVP 和 MVVM 区别2.

2020-06-02 20:59:41 586

原创 java中设计模式

设计模式目录(单利模式)[#1.一 单利模式](工厂模式)[#2.二 工厂模式](观察者模式)[#3.三 观察者模式](建造者模式)[#4.四 建造者模式 (builder模式)]一 单利模式用EventBus的创建方式为例子public class EventBus { private static volatile EventBus defau...

2018-07-30 13:07:35 138

原创 Glide加载进度(自己看)

自己看,记录glide加载进度的问题:在build.gradle中添加 依赖implementation 'com.github.bumptech.glide:glide:4.7.1'annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'implementation "com.github.bumptech.gl...

2018-07-26 17:58:56 3390 1

原创 编译时注解之butterknife的简单实现

1. 前提本博客就是为了让我自己更好的理解butterknife的原理,或者是更好的让大家学习一下运行时注解,所以本博客的大前提是在参考 张鸿洋 的 Android如何编写基于编译时注解的项目 编写的,但是 张鸿洋 大神有很多地方没有解释到,本篇文章可以让初学者,学习到怎样使用运行时注解.可以为大家更好的除去疑惑2. 开始编写2.1 框架分为四个模块,前三个为核心模块:...

2018-05-04 13:30:20 251

原创 注解的详细介绍和使用

1. 定义:定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释2. 为什么要使用注解使用注解可以提升开发效率,因为注解中已经封装好了我们需要的代码当我们开发项目的时候,我们会用到很多第三方库,里面都用...

2018-04-28 14:19:47 233

原创 Rxjava操作符入门(三)

错误处理型retry: 当原始Observable在遇到错误时进行重试。如果重复过后还是错误,就崩溃 Observable.just(1, "2", 3) .cast(Integer.class) .retry(3) .subscribe(new Consu

2017-12-12 16:09:50 264

原创 Rxjava操作符入门(二)

转化型Map 对Observable发射的每一项数据都用一个函数来进行转换。实例: 发射过来的数乘以2 Observable.just(1, 2, 3, 4).map(new Function<Integer, Integer>() { @Override public Integer apply(Integer int

2017-12-12 13:20:06 200

原创 Rxjava2操作符入门(一)

Rxjava2操作符入门1. 概述:用官网的一句话:”a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。也就是咱们常说的链

2017-12-08 07:06:48 1022

原创 腾讯热修复Tinker的详解和使用

转载请标明出处: [http://blog.csdn.net/qq_33408235/article/details/78357259](http://blog.csdn.net/qq_33408235/article/details/78357259)1. 热修复概述热修复说白了就是”打补丁”,比如你们公司上线一个app,用户反应有重大bug,需要紧急修复。如果按照通 常做法,那就是程序猿

2017-10-26 18:33:21 1795

原创 Spring详细教程入门(一)

1. Spring 的概述1.1 什么是 Springpring 是一个开源框架,Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构

2017-10-20 15:02:37 2598

原创 VirtualAPK详解和使用

1 介绍Android 插件化技术是比较热门领域,VirtualAPK 是滴滴2017年6月3号开源,框架功能完备,支持 Android 四大组件,良好的兼容性,且入侵性较低,作为加载耦合插件方案是较好选择。兼容市面上几乎所有的 Android 手机,这一点已经在滴滴出行客户端中得到验证; 资源方面适配小米、Vivo、Nubia 等,对未知机型采用自适应适配方案;极少的 Binder Hook,目前

2017-10-19 13:34:32 7838 7

原创 AlarmManager详解:android中的定时任务

AlarmManager详解1.概述AlarmManager通常用途是用来开发手机闹钟,但是AlarmManager的用处并只是这个。AlarmManager其实是一个全局定时器,它可以在指定时间或指定周期启动其他组件,在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,当到达这个时间,就会发出广播提醒我们.2.AlarmManager的常用方法有三个set(int typ

2017-09-11 16:59:22 6099

原创 带有删除按钮的EditText

描述虽然带有删除按钮的EditText不是太难写,但是为了记录自己学习过程,方便以后在项目中使用,写了此博客效果图实现步骤1.写一个类集成EditText,起名为ClearEditText,重写构造方法,每一个构造方法内init()初始化数据; public ClearEditText(Context context) { this(context, null); init();}

2017-07-19 15:46:48 844

原创 真正的画廊,左右条目可点击居中, 左右条目可滑动

利用Viewpager实现真正的Gallery, 左右条目可点击居中, 左右条目可滑动,也就是可以获得焦点前言: 最近公司做一个想Gallery一样的效果,于是想在网上找个现成的,但是怎么找也没找到,就是找到一个鸿洋大神的巧用ViewPager 打造不一样的广告轮播切换效果的,但是左右条目不可点击,又不可以滑动,所以就做了个这个控件,本控件也是利用ViewPgaer做出来的首先看一下效果: 从图

2017-05-23 16:45:14 3049 3

原创 ShakeView(通常提示用户那个输入不正确) 几行代码搞定

用平移动画实现shake首先讲一下平移动画的使用吧看一下构造方法TranslateAnimation(Context context, AttributeSet attrs) :参数2: 是一个属性,基本没怎么用过TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYTy

2017-05-18 10:20:52 263

原创 android高仿微信底部导航栏

这几天在公司没什么工作,闲来没事写了一下关于微信底部渐变的导航,textview 是利用 ArgbEvaluator 实现颜色渐变的效果,图片渐变是自定义imageview 来设置透明度进行渐变的本代码与其他实现的优越性:代码简单容易看懂,对新手来说不是问题直接可以copy到自己的项目中使用首先看一下效果图先了解一下ArgbEvaluator的使用,ArgbEvaluator俗称颜色计算器,

2017-05-08 19:29:25 7099 3

空空如也

空空如也

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

TA关注的人

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