自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MDY的博客

能用心做好一件事就好

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

原创 View.post到底做了什么

相信或多或少大家都使用过View的post一系列方法,来达到获取宽高或者做一些延迟操作什么的,不知道什么时候开始我突然觉得只会用,但是不了解为什么会这样,给我一种镜中花 水中月的感觉,所以有了下面的文章。post几点疑问?1。为什么可以获取到View的宽高?2。可不可以在Runnable中执行UI操作,可不可以在子线程中调用?3。会不会引发内存泄漏?/*** ViewRoot...

2019-08-01 21:58:11 756

原创 EventBus第三章 :源码阅读与理解

EventBus第三章:事件的发送,调用和解绑该篇我将继续讲解EventBus事件发送,调用和解绑,接下来进入今天的源码解析之路。EventBus的发送EventBus.getDefault().post(new TestEvent("hello Eventbus"));EventBus.getDefault().postSticky(new TestEvent("hello sticky...

2019-04-11 21:55:23 212

原创 EventBus第二章:源码阅读与理解

EventBus第二章:源码阅读与理解上一篇文章我们学习了EventBus的基本使用,本着知其所以然的道理,这篇文章我们来学习EventBus的源码。本次对于源码的理解,我会从初始化,注册,解绑,post和postSticky五个个方面来解析。接下来进入今天的远嘛解析之路。EventBus的初始化EventBus.getDefault()public static EventBus ge...

2019-04-11 20:45:50 164

原创 EventBus第一章:初识,相见,了解,使用

EventBus第一章:初识,相见,了解,使用19年了,距离上次写文章都不知道多久了,该认真起来了,这次记录的是我Learn EventBus的使用以及理解。初识Eventbus用官方的话说:EventBus is a publish/subscribe event bus for Android and Java(EventBus是用于Android和Java中的发布/订阅事件总线).下面...

2019-03-23 20:41:33 194

原创 ListView源码阅读:TouchEvent滑动事件

之所以上一篇文章没有讲这些,主要因为这些代码我看起来也是晕,不得不说google的工程师写的代码真的是让人佩服,该片主要记录我在研究ListView的滑动事件时的一些看法。接下来直接看代码吧。Note:我们需要了解以下几个概念 //表示我们不在触摸手势的中间 static final int TOUCH_MODE_REST = -1; //提示我们收到一个down事件,...

2018-06-25 10:10:43 452

原创 ListView源码阅读:RecycleBin缓存机制以及二次onLayout

在阅读ListView源码之前,我们首先需要了解到ListView的缓存机制,也就是RecycleBin缓存,RecycleBin是属于AbsListView的内部类。这里看需要了解RecycleBin的一些成员变量和方法。RecycleBin //在mActiveViews中存储的第一个视图的位置 private int mFirstActivePosition; //缓...

2018-06-21 17:07:11 882

原创 Retrofit+RxJava实现文件下载附带进度条

Retrofit+RxJava实现文件下载附带进度条项目中需要使用到更新版本,因此研究了一下Retrofit的下载文件,和进度条效果,其间也遇到了一些坑,写出来加深一下记忆,也为别的同学提供一下思路。先说一下版本控制吧,通用做法基本上是通过接口获取服务器存储的app版本号,与应用的版本号进行比较,版本较低就去更新,先看一下如何获取应用版本号吧:PackageManager pack...

2018-04-23 17:25:43 2262

原创 Retrofit上传多文件,多参数,包括数组

公司之前的项目中需要用到同时上传多文件,多参数,多数组的形式,因为使用的网络框架是自己封装的Rxjava +Retrofit 所以就研究了一下文件的上传方法,不看不知道,单个类型上传还挺简单,上面那些放在一起,差点把我搞蒙了,主要还是对Retrofit的使用不深刻,写此篇文章,用来记录一些心得:private String guessMimeType(String path) { ...

2018-04-02 10:01:53 4366

原创 Android 中流式布局讲解

Android 流式布局作为一个码农,在平时UI的各种要求中,流式布局应该是一种比较普遍的展示,通常来说就是:根据父控件给与的大小来进行合理的展示子控件。本文就是通过自定义ViewGroup的方式,进一步实现onMeasure和onLayout方法进行实现,需要你对View的测量,大小有一定的了解。onMeasure通常我们进行自定义View和ViewGroup时,基本上都会使...

2018-04-02 09:38:43 680

原创 RxJava与Retrofit封装简单的网络请求(二)

本文属于作者学习Rxjava的第二篇,进行了一些简单的封装。Retrofit一款基于Android的网络请求框架,底层基于Okhttp,被谷歌官方认可,最好的解释。 RxJava在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences fo

2017-09-11 09:36:16 308

原创 RxJava的一些标志符号学习(一)

Just ,SkipJust将Object对象逐一输出,skip跳过,subscribeOn表示被观察者运行线程,observeOn表示观察者运行线程,Skip(1)表示跳过第一个Object, public void getObservable(){ Observable.just(item,item2) .subscribeOn(Schedulers.io(

2017-09-05 17:06:02 467

原创 Handler,Looper消息机制原理

Android应用程序消息处理机制三部分:消息循环,消息发送,消息处理Looper:消息循环当我们打开一个应用程序的时候,系统会默认帮我们创建一个主线程ActivityThread(这是一个受保护的类,可以直接打开sdk位置,找到该类),在main方法中已经帮我们实现Looper。所以我们不需要再次实现该方法,也可以实现消息的发送,处理。当我们创建一个线程时就需要实现Looper来实现消息的循环处理

2017-08-07 11:10:08 459

原创 对于线程池的一些学习

ThreadPoolExecutor线程池是什么,作用:线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数。Thread与Runable的用法 class MyThread ext

2017-06-01 15:14:41 357

原创 Activity的一些自身认识

一、Activity的含义Activity提供了一个和用户进行交互的接口,允许用户进行一系列的操作等,通过 @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

2017-06-01 14:09:08 317

原创 Android Studio学习小结

今天在移交项目的时候编译Studio报以下错误:这里给出一个可能的原因是因为Android的方法数目不够,添加以下代码试试: multiDexEnabled true,希望能解决,谢谢

2017-03-08 09:39:37 2334

原创 空包签名

1、下载空包,都会得吧 2、window+R输入cmd打开控制台。 3、输入:jarsigner -verbose -keystore 【1】 -signedjar 【2】 【3】 【4】【1】:签名文件位置 例子:F:\onetask\abc.ketstore 注意:若无ketstore后缀名,则可以不写。 【2】:签名后的包地址。 【3】:空包地址 【4】:

2017-03-01 17:08:17 434

原创 APP内部打开指定的APP

今天项目中使用了APP内部打开指定的APP,若不存在则打开网页版App,关键的类[PackageManager][2] 记录一下心得:判断手机上是否安装指定APP代码块public static boolean isInstallApp(Context context,String packageName){ PackageInfo packageInfo; try

2017-02-16 16:48:14 5278

原创 ScrollView滑动悬停ToolBar效果实现

首先我想做这个效果 好长一段时间了,看到现在很多App脸面的这种效果很喜欢,前两天在观看、实践了大量关于事件的分发、拦截。消费的代码与博客后,终于下定决心去试着做这种效果。很遗憾,水平的原因还是没能实现,如果你实现了的话,欢迎留下你的博客,谢谢!最终还是使用两个相同的空间来进行隐藏、显示写出来的效果,心中还是有些遗憾,我不太喜欢这中实现,但还是贴出来分享一下,其实主要就是自定义一个Scroll

2017-02-09 14:23:16 711

原创 View中滑动小结

1、调用父布局layout(int l, int t, int r, int b)方法 2、通过view在XY轴上的偏移量offsetLeftAndRight(dx); offsetTopAndB

2017-02-07 10:39:51 502

原创 自定义View绘制文字

自定View绘制文字居中显示

2017-01-19 14:42:44 632

空空如也

空空如也

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

TA关注的人

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