Roger's Blog

Boilerplate of Hux Blog

[译]控件属性的各种声明方式的比较 理解如何声明具有特定风格的TextView TextView提供了各种各样的属性,和不同的方式去声明它们。我们可以在xml中直接定义View的属性,也可以通过style的方式去设置TextView的属性,还可以通过设置theme和android:textAppearance的方式来设置一个控件的属性。所以,我们究竟该在什么样的情境下使用它们...

View绘制流程

在开始之前,先来一张图片梳理思路。(估计只有我自己看得懂/(ㄒoㄒ)/~~ 一,measure过程 measure()过程由measure(int, int)方法发起,从上到下有序测量View, measure过程会为一个View及其所有子View的mMeasuredWidth和mMeasuredHeight变量赋值 1.储备知识 在查看view.measure()的源码之前,...

Activity启动流程 ,基于Android 10

Activity启动流程 ,基于Android 10 先上一张图 核心类 Activity:界面展示等ui操作 ActivityThread:应用的主线程,入口 Instrumentation 负责调用Activity和Application生命周期。 ActivityTaskManagerService(ATMS):负责管理activity ActivityManagerSe...

ItemTouchHelper打造可拖拽的卡片布局

ItemTouchHelper打造可拖拽的卡片布局 这是效果 Activity.onCreate() 首先我们创建在Activity的onCreate()方法中 val itemTouchHelper = ItemTouchHelper(touchHelperCallback) itemTouchHelper.attachToRecyclerView(list) 这里的tou...

红岩第四次课课件

泛型 层次1:用Integer来写一个集合类,返回中间元素 层次2:用Object来实现复用 层次3:用泛型来实现复用 (注:集合内部还是维护着一个Object[]数组,因为泛型对象无法实例化) 层次4:对泛型变量限定 (定义一个getLargest()方法,阐述Comaparable, 选讲自定义比较器) 层次5:通配符,实现只读和只写 层次5:thr...

CircularRevealCardView

CircularRevealCardView配合FAB使用 这是效果 这其实就是一个curcular reveal effect 什么是curcular reveal effect , 它是Material Design当中的一个概念 当您显示或隐藏一组UI元素时,curcular reveal 将为用户提供视觉连续性。 那么如何实现上面的效果呢? 首先,我们要...

git使用

git 0.需要注意的点 基于git管理来看,工作区,暂存区,版本仓库实质上是管理的修改,暂存和提交的差异记录。”不能说提交后暂存区就没了”,这比较容易引起偏差 廖雪峰讲的概念有误 stage 并不是 working directory 和 HEAD 之间的 临时枢纽,不能按照 “内存”、”购物车” 来理解 stage,否则你会很难理解 gi...

一个非常炫酷的翻页动画

我在之前翻译的一篇文章中介绍了MotionLayout,如果你还不知道MotionLayout是什么,先看这篇MotionLayout介绍 今天想要介绍一个用MotionLayout实现的非常炫酷的翻页动画,翻译自Medium 这是效果 可滑动的卡片 如何实现上面的卡片呢 我们在xml中使用MotionLayout并定义了一个FrameLayout <a...

Android逆向

Android逆向 1.工具 apktool.jar jd-gui.jar dex2jar.zip 2.查看java源码 假设现在有一个test.apk,如果我们想要查看一个apk里的java源码,首先 我们通过解压apk文件得到classes.dex文件,然后将classes.dex文件放置到dex2jar目录下 通过命令行 .\d2...

关于Kotlin的型变

关于Kotlin的型变 1.Java对泛型的限制 Java中所有的类都是不变型的 在Java中,List<String>并不是List<Object>的子类型。 如果List<String>并是List<Object>的子类型, 那么就是意味着将一个List<Object>类型的对象指向List<String>不...