
Android基础
_红日_
使用PADS从事硬件工程师6年;
使用SSH开发应用商城经验一年;
使用Eclipse+源码环境开发firmware app,经验5年;
使用AndroidStudio 开发手机端app,framework app 经验5年
展开
-
安卓自定义对话框框架
Android 开发中经常会碰到对话框的需求,总结一下我个人在工作中用到的一个dialog框架.经过大量的手机测试,其兼容性很好. 其中包含了一个核心类:原创 2016-03-15 10:41:09 · 543 阅读 · 0 评论 -
RecylerView 源码分析
RecylerView 继承自ViewGroup, 是一个容器类, 自定义一个容器类, 需要实现的方法:1. 构造方法:2.onMeasure()3.onLayout()4.onIntercepterTouchEvent()5.onTouchEvent()源码版本: 27.1.1==============================================...原创 2019-02-16 10:33:08 · 611 阅读 · 0 评论 -
Glide 4源码分析(一)
Glide 4 源码分析: 本想写一篇Glide 源码分析, 发现大佬写的不错了, 特此记录:转自: https://blog.youkuaiyun.com/nbsp22/article/details/80666592 Glide.with(this) .load("https://p.upyun.com/docs/cloud/demo.jpg") ....转载 2019-03-27 17:13:45 · 515 阅读 · 0 评论 -
Glide4源码分析(二)~Engine加载资源过程
转载自:https://blog.youkuaiyun.com/nbsp22/article/details/80666481通过前面的分析,我们知道真正去加载数据是在SingleRequest#onSizeReady方法中被触发,这个里面是调用了Engine#load方法,看到这个方法,我们大致可以猜到此时便开始去真正加载数据了,从缓存中读取或者是从网络获取等等。在开始之前,我们先简单了解一下Engin...转载 2019-03-27 17:19:59 · 191 阅读 · 0 评论 -
Glide源码分析(四),DecodeJob执行过程
转自: https://blog.youkuaiyun.com/nbsp22/article/details/80666414开始本文之前,DecodeJob它实现了Runnable接口,敏感的朋友可能已经意识到,加载代码的入口就在这里,会在一个新的线程中去加载资源。DecodeJob这个类的代码非常多,主要有以下几个重要的点。封装一些从上面传过来的参数信息,不知道是否还有印象,我们的glide大部分信息...转载 2019-03-27 17:22:35 · 152 阅读 · 0 评论 -
Glide源码分析(五),EngineJob与DecodeJob代码详细加载过程
转自:https://blog.youkuaiyun.com/nbsp22/article/details/80666341我们分析到Engine#load的最后一步,创建好了一对EngineJob和DecodeJob,随之调用EngineJob的start方法,启动加载任务。下面分析整个一个执行过程,文中相关情景下的方法特定调用的结果是还是基于一下这段code,虽然是由特殊入口,并不影响我们理解整个框架...转载 2019-03-27 17:27:57 · 158 阅读 · 0 评论 -
Glide源码分析(六),缓存架构、存取命中分析
转自:https://blog.youkuaiyun.com/nbsp22/article/details/80666291分析Glide缓存策略,我们还得从之前分析的Engine#load方法入手,这个方法中,展示了缓存读取的一些策略,我们继续贴上这块代码。Engine#loadpublic <R> LoadStatus load( GlideContext glideContext...转载 2019-03-27 17:31:30 · 176 阅读 · 0 评论 -
Glide源码分析(七),总纲思路梳理
转自:https://blog.youkuaiyun.com/nbsp22/article/details/80666090对于Glide源码分析,基本已经接近尾声,整体下来,整个Glide工程代码量还是比较大的,涉及的知识点以及设计模式也很多,很值得研究一下,这里我贴上github源码中,关于glide工程的一张简单的引用关系。如下:这样大家面对这个强大的代码库也就不那么不知所措了,最核心的也就是l...转载 2019-03-27 17:36:56 · 187 阅读 · 0 评论 -
Glide源码分析(八),Glide的自定义模块扩展与实践
转自:https://blog.youkuaiyun.com/nbsp22/article/details/80651423Glide v4使用注解处理器(Annotation Processor)来生成出一个API,在Application模块中可使用该流式API一次性调用到RequestBuilder,RequestOptions和集成库中所有的选项。GeneratedAPI模式的设计出于以下两个目...转载 2019-03-27 17:51:05 · 299 阅读 · 0 评论 -
基于AndPermission 的权限框架封装, 记录备用
1.先依赖库:api ‘com.yanzhenjie:permission:2.0.0-rc11’PermissionUtils.requestPermission(this, new OnRequestPermissionListener() { @Override public void onGranted() { ToastUti...原创 2019-04-12 15:24:00 · 775 阅读 · 0 评论 -
Room数据库框架使用记录
Room 是goole 在jetpack 中的一个数据库框架,在项目中使用特此记录,以备后查在项目中使用到了room 数据库框架, 特此记录:1.添加依赖(用到了annotationProcess, 需要配置在app 使用model 下,不能配置在lib 的model下) // Room implementation 'android.arch.persistence.room:r...原创 2019-05-20 11:02:21 · 673 阅读 · 0 评论 -
WebView 常用属性记录
收录网上的关于webView 的一些记录和总结:https://www.jianshu.com/p/2b2e5d417e10https://www.jianshu.com/p/a6f7b391a0b8https://www.jianshu.com/p/b9164500d3fbAndroid WebView 详解96 reezy 关注2.1 2017.08.29 20:29* 字数 1...转载 2019-05-15 14:35:27 · 667 阅读 · 0 评论 -
安卓6.0~9.0适配
安卓6.0~9.0适配 雾里看花六月天 关注 转自: https://www.jianshu.com/p/23b8ae9d5a95 1.前言大家还记得Android 6.0权限适配的泪水吗?而现在谷歌已经出了Android P的稳定版,而且谷歌粑粑,为了大家能给辛苦熬夜加班,特地的和个大市场合作,要强制推出9.0的适配,而近期在下不才,为了报着多踩坑的心态,做了一下7.0...转载 2018-12-04 09:47:18 · 228 阅读 · 0 评论 -
application 语法总结
转发自: https://www.jianshu.com/p/f535c0f6f65f 一、application 语法(SYNATX):<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"...转载 2018-12-04 15:31:15 · 726 阅读 · 0 评论 -
RXjava 常用记录
1.点赞/取消点赞 场景:RxView.clicks(cb_photo_like) .debounce(300,TimeUnit.MILLISECONDS) .subscribe(o -> { int state=cb_photo_like.isChecked() ? 1 : 0; Net.NET_SE...原创 2018-11-19 19:18:53 · 145 阅读 · 0 评论 -
解决登陆界面软键盘弹出遮住登陆按钮
android:windowSoftInputMode属性一共同拥有9个取值。各自是: stateUnspecified:当设置属性为stateUnspecified的时候,系统是默认不弹出软键盘的。可是当有获得焦点的输入框的界面有滚动的需求的时候,会自己主动弹出软键盘。至于为什么非要强调要获取焦点的输入框。这是由于,假设不是输入框获取焦点。软键盘也是不会自己主动弹出的。让界面不自己主动弹...原创 2018-10-31 17:44:25 · 2966 阅读 · 0 评论 -
AndPermission 运行时权限管理使用
AndPermission是一个运行权限管理库,兼容Android O,同时最大程度上兼容了国产机。仓库地址: https://github.com/yanzhenjie/AndPermission1.在model 的build.gradle中添加依赖dependencies { api fileTree(include: ['*.jar'], dir: 'libs') ...原创 2018-11-01 11:36:46 · 3255 阅读 · 0 评论 -
自定义 seekBar,progressBar 记录
自定义的seekBar:1.在res/drawable/下创建自定义背景颜色的文件: progressbar_brightness.xml<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">&...原创 2018-11-01 18:05:31 · 383 阅读 · 0 评论 -
Glide
一、简介Glide,一个被google所推荐的图片加载库,作者是bumptech。这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app。(PS:众所周知的简介就到此为止了)Glide 对于 Android SDK 的最低要求是 API level 10Glide滑行的意思,可以看出这个库的主旨就在于让图片加载变的流畅。现在被广泛使用,当...原创 2018-11-01 18:04:36 · 352 阅读 · 0 评论 -
AndroidUtilCode 使用记录
整理下工作中用到的一些工具类, 可以提高工作效率, 避免重复制造轮子,方便日后查阅:原文地址:github:https://github.com/Blankj/AndroidUtilCode依赖:implementation 'com.blankj:utilcode:1.21.2' Activity 相关 -> ActivityUtils.java isA...原创 2018-11-06 19:29:32 · 1214 阅读 · 0 评论 -
background 使用 drawable, 和 color 记录
项目中根布局的背景 使用 Drawable 和 Color 的差异对比做个记录: 布局文件如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layou...原创 2018-11-09 11:37:36 · 1104 阅读 · 0 评论 -
状态栏沉浸,系统状态栏颜色更改
系统状态栏颜色标识如下:res/values/style.xml:<!-- 主题 --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <!-- 窗口背景颜色 ...原创 2018-11-03 10:36:33 · 1999 阅读 · 0 评论 -
自定义对话框全屏模式(模拟Activity)
记录一下开发中碰到的自定义对话框需要更改为Activity 样式,全屏, 有输入框被键盘遮挡的解决方式:1.布局文件写法:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:la...原创 2018-11-05 15:25:24 · 274 阅读 · 0 评论 -
安卓常用控件记录
1.TextView:<TextView android:id="@+id/tv_date" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margi...原创 2018-11-05 16:08:22 · 178 阅读 · 0 评论 -
AS低版本项目升级
项目中用到经常碰到从github 或者厂商提供的源码, 但是版本比较低, 需要升级到最新的编译环境:1.修改 project 目录下的 build.gradle: buildscript { repositories { google() jcenter() } dependencies { classpath ...原创 2018-11-14 10:31:51 · 319 阅读 · 0 评论 -
LatinIME 修改记录
1.隐藏指定的按钮: KeyboardView .java# onDrawKey()public class KeyboardView extends View { private void onDrawKey(final Key key, final Canvas canvas, final Paint paint) { //Log.e("KeyboardView", "=== o...原创 2019-07-10 15:20:28 · 1171 阅读 · 0 评论