自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 表格计划表(支持简单定制,如: 计划表颜色定制,单元格大小定制...)

github地址:https://github.com/PPQingZhao/ScheduleViewDemo运行截图: 第一张图展示 AM 00:00 - 11:59计划...

2019-11-19 20:34:33 263

原创 RecyclerView粘性头部,支持线性和网格布局,支持item添加和删除(无需再次排序)

RecyclerView粘性头部 1.实现原理:在外部添加一个与RecyclerView对齐的headerView,动态添加需要展示的header 2.支持线性和网格布局 3.支持item添加和删除(无需再次排序)博主文笔太菜,不想多说,直接上项目链接github:https://github.com/PPQingZhao/StickyHead...

2019-11-13 18:50:18 237

原创 最简单实现网格布局分页效果 (recyclerview + snaphelper)

运行截图                     基于 PagerSnapHelper 自定义 GridPagerSnapHelper.支持横向与纵向滑动,行列数量可自定义传入 private void initGridePager() { // 3行3列,横向 int colum = 3; int row = 3; ...

2019-07-05 16:25:57 3579 6

原创 线程

多线程进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间线程是指进程中的一个执行流程,一个进程可以运行多个线程意义:进程的意义:提高CPU的使用率线程的意义:提高应用程序的使用率Thread类中start() 和run()区别①start:用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,

2020-05-31 21:36:32 180

原创 面向对象

面向对象思想:封装隐藏实现细节,对外提供公共的访问方式好处:①隐藏实现细节,对外提供公共的访问方式②复用性(工具类)③安全性(私有化成员变量,使用setXXX(),getXXX())继承把多个类中相同的成员提取到定义到一个独立的类中,然后让这多个类与这个独立类产生一个关系,这多个类就具备这些内容,这个关系叫做继承。优点① 复用性(直接使用继承自父类的成员)②维护性(只修改父类,就可以达到影响子类效果)③是多态的前提缺点①耦合度增加(子类中耦合了多个类,修改父类,就会影响子类)

2020-05-31 20:46:33 144

原创 Retrofit

https://www.jianshu.com/p/45cb536be2f4

2020-02-12 16:46:46 167

原创 关于保存状态的Fragment,setRetainInstance(true)

关于保存状态的Fragment,setRetainInstance(true)添加链接描述

2020-01-14 09:51:09 221

原创 Android组件-ViewModel 源码分析

android viewModel源码分析

2020-01-12 17:11:23 272

原创 全面了解MVC、MVP、MVVM模式(含实例讲解)

android 架构

2020-01-07 19:10:49 495

原创 recyclerview 滑动切换画廊效果

https://blog.csdn.net/weixin_43853568/article/details/84790552

2019-12-27 11:28:41 651

原创 策略模式

https://blog.csdn.net/haoxuhong/article/details/84023825

2019-12-27 11:04:27 62

原创 recyclerView adapter.notifyDataSetChanged()分析

① mAdapter.notifyDataSetChanged();跟进源码,发现是通过观察者模式进行分发的RecyclerView.Adapter:public final void notifyDataSetChanged() { this.mObservable.notifyChanged(); }② 找到注册观察者的地方:应该就是设置设...

2019-12-26 19:30:18 1496

原创 recyclerview 预取机制

https://blog.csdn.net/tangedegushi/article/details/88790754

2019-12-25 16:51:51 200

原创 RecyclerView性能优化

https://zhuanlan.zhihu.com/p/49338922

2019-12-25 15:34:23 122

原创 android AOP编程

https://blog.csdn.net/innost/article/details/49387395

2019-12-25 10:33:53 69

原创 基于滑动场景解析RecyclerView的回收复用机制原理

基于滑动场景解析RecyclerView的回收复用机制原理

2019-12-23 20:14:53 115

原创 android aidl

Android中AIDL的使用详解Android中AIDL的工作原理

2019-12-17 16:19:36 80

原创 单例模式

**单例模式定义:** 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例**使用场景:** 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多资源,或者某种类型的对象只应该有且只有一个.例如,创建一个对象需要消耗的资源过多,如要访问IO 和数据等资源,这时就要考虑使用单例模式.**实现单例模式主要有如下几个关键点:**①...

2019-12-17 11:43:13 91

原创 深入理解Java虚拟机——JVM类加载机制(类加载过程和类加载器)

类加载过程

2019-12-17 11:03:21 116

原创 Glide自定义缓存key

https://juejin.im/post/5a335cc7f265da431523f542

2019-12-10 17:06:30 1472

原创 Glide 4.7.1源码分析--启动加载 into(view)

Glide源码分析 – 启动图片加载流程// 在 RequestBuilder.into()之前必须调用load()系列方法,设置model// 重载的一系列into()方法最终都调用/* private <Y extends Target<TranscodeType>> Y into( @NonNull Y target, @Nullable...

2019-12-10 17:05:38 235

原创 Glide 源码分析--初始化

初始化 RequestOptions options = new RequestOptions() .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE); Glide.with(context) .load...

2019-12-10 11:16:40 178

原创 状态模式

状态模式

2019-12-09 10:41:57 82

原创 Android利用android:indeterminateDrawable来实现ProgressBar三种方式

Android利用android:indeterminateDrawable来实现ProgressBar三种方式

2019-12-06 10:52:10 169

原创 Android开发之MVVM新姿势探索

[Android开发之MVVM新姿势探索](https://www.jianshu.com/p/fc814a20c452)

2019-12-02 17:10:40 100

原创 Glide使用总结

Glide使用总结:一.缓存策略:RequestOptions requestOptions = new RequestOptions() .diskCacheStrategy(DiskCacheStrategy.NONE) // 配置磁盘缓存 .`skipMemoryCache(true) // 是否跳过内存缓存` ...

2019-11-27 15:40:32 257

原创 android框架

Android 由setContentView探究Activity界面加载流程及Activity、Window和DecorView的关系 链接Android View 测量流程(Measure)源码解析 链接

2019-11-21 16:15:31 85

原创 android drawable目录

https://blog.csdn.net/guolin_blog/article/details/50727753https://blog.csdn.net/zhaokaiqiang1992/article/details/49787117基本概念:1. px: 分辨率单位像素 平常所说的1920×1080只是像素数量,也就是1920px × 1080p...

2019-11-20 14:31:06 256

原创 UnsupportedOperationException: Failed to resolve attribute at index 13:TypedValue{t=0x2/d=0x7f03018

bug描述:Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f03018e a=7}原因:构造布局填充器对象LayoutInflater.from(context.getApplicationContext(...

2019-11-13 19:59:03 5875 4

原创 android 邮箱分享(添加附件筛选邮箱应用)

/** * 发送邮件 * * @param title * @param email * @param extraText */ public static void sendEmail(String title, String[] email, String extraText) { if (ArrayUti...

2019-11-06 10:50:16 626

原创 ConstraintLayout 详解

https://www.jianshu.com/p/f86f800964d2

2019-08-12 11:02:36 73

原创 android 设计文档

https://blog.csdn.net/wzgiceman/article/details/82593266

2019-07-15 09:51:42 979

原创 AsyncTask(多任务串行/并行)简单分析

1. 多实例并行时,使用 asynchTask.execute()提交的任务是串行执行的.下面分析原因:以下是两个异步实例提交任务: private void asynchTaskTest() { // 异步任务1 TestAnsycTask testAnsycTask1 = new TestAnsycTask(); Log.e("T...

2019-07-12 15:41:43 782

原创 GreenDao 学习

https://www.jianshu.com/p/53083f782ea2

2019-07-11 13:43:14 122

原创 源码--Handler 机制

文章未仔细梳理Handler 机制大致描述: 这个机制主要牵涉到类 Handler、Message、MessageQueue 和 Looper. 这个机制大致工作流程: ① 执行 Looper.prepare();方法,为当前线程准备Looper对象; ②接下来就是往消息队列中插入消息,也就是我们熟悉的handler.sendMessage(new Message...

2019-07-10 17:35:57 115

原创 android keytool工具获取签名md5/sha1,代码动态获取

终端使用keytool 工具获取md5 sha1https://www.jianshu.com/p/edfb4922840d代码动态获取md5https://www.jianshu.com/p/e7fa21c4d3cf代码动态获取 sha1https://www.jianshu.com/p/499f95971ad7...

2019-07-01 15:20:14 958

原创 音视频学习四: Opengl ES Shader讲解

Shader            生成测试yuv数据和pcm数据命令:ffmpeg -i test.mp4 -f si6le test.pcmffmpeg -i 720.mp4 -pix_fmt yuv20p -s 424x240 out.yuv具体显示yuv数据 --- 着色器语言 GLSL (运行在显卡上,不消耗cpu)-GLSL的基本语法与C语言基本相同-它...

2019-06-13 10:51:21 2343

原创 音视频学习三: EGL讲解

EGL Opengl与窗口系统对应的设配层EGL是由Khronos Group提供的一组平台无关的API,它的主要功能如下:1. 和本地窗口系统(native windowing system)通讯;2. 查询可用的配置;3. 创建OpenGL ES可用的“绘图表面”(drawing surface);4. 同步不同类别的API之间的渲染,比如在OpenGL ES和Op...

2019-06-12 16:01:26 4813 3

原创 音视频学习二: android平台下ffmpeg编解码简记-编解码

               编解码1.主要函数avcodec_register_all(); 注册所有解码器 AVCodec *avcodec_find_decoder(enum AVCodecID id); 软件码:根据解码器id找到解码器 AVCodec *avcodec_find_decoder_by_name(const char *name); 硬解码:根据解码器名称找到解...

2019-06-11 16:18:35 770

原创 音视频学习一: android平台下ffmpeg编解码简记-解封装

解封装1.常用函数:av_register_all():注册所有组件 avformat_network_init() : 初始化网络环境 avformat_open_input(...) : 打开输入的视频文件 avformat_find_stream_info(...) : ...

2019-06-11 14:42:19 963

空空如也

空空如也

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

TA关注的人

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