Android
jasonlee555
Choose what you love, love what you choose.
展开
-
TextView设置drawableLeft不垂直居中
Android中,设置TextView的drawableLeft时,当TextView的文字不止一行时,左边的图标会垂直居中,这不是我想要的效果。我需要的是一直在第一行。参考这篇文章得以解决。...原创 2018-03-16 15:58:18 · 3645 阅读 · 0 评论 -
android APP界面加载流程setContentView分析
我们在设置自己activity的界面时,通常在onCreate里调用setContentView($layoutId)来达到设置布局的目的。调用的父类Activity的该方法,如下: public void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID...原创 2019-07-03 10:29:05 · 218 阅读 · 0 评论 -
ScrollView嵌套的ListView的高度问题
为什么ScrollView嵌套的ListView显示的只有一行内容。因为ScrollView默认给children的高度测量模式是UNSPECIFIED,在ScrollView的onMeasure中,首先调用super.onMeasure,而ScrollView继承自FrameLayout,所以就是调用FrameLayout的onMeasure方法。在该方法中,有如下关键代码,注意measur...原创 2019-06-03 21:51:00 · 997 阅读 · 0 评论 -
动态修改BottomNavigationBar的大小
android系统自带的BottomNavigationBar用起来是很方便,就是固定了大小,即使在xml里面配置了高度。当你设置的高度大于56dp,你会发现底部有两层,后面一层白底的布局比BottomNavigationBar高,露出来了。在看了BottomNavigationBar源码后发现在加载它的布局的时候,把inflate出来的view添加到BottomNavigationBar上了。...原创 2019-04-03 15:39:34 · 1319 阅读 · 0 评论 -
属性动画时序图
原创 2019-04-12 15:14:30 · 323 阅读 · 0 评论 -
Android可以在子线程更新UI吗
之前一直有个疑问,为什么不能在子线程中更新UI。最近在看Android源码关于界面加载的部分,发现更新UI的动作最终都会执行一个线程检测方法checkThread(),在ViewRootImpl。很重要的一点,在ViewRootImpl被初始化之前,mThread是为空的,此时在线程中更新UI也是没问题的。 @Override protected void onCreate(B...原创 2019-03-16 22:05:06 · 640 阅读 · 0 评论 -
OkHttp 上传进度监听
1.自定义ExMultipartBody 继承自 RequestBody,该类作为MultipartBody类的代理类。因为MultipartBody是final类,无法被继承。public class ExMultipartBody extends RequestBody { private MultipartBody mMultipartBody; private U...原创 2018-10-12 15:28:57 · 2843 阅读 · 1 评论 -
萤石Android接入笔记
1.导包dependencies { compile 'com.hikvision.ezviz:ezviz-sdk:4.8.3' }2.权限配置//网络权限<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="androi...原创 2018-08-06 10:53:42 · 2669 阅读 · 0 评论 -
android 为什么有时候拿不到View的宽高
最近在阅读Activity启动流程,从ActivityThread的handleLaunchActivity开始阅读。当阅读到ViewRootImpl的performTranversal时,发现View的dispatchAttachToWindow先于View的onMeasure执行,而在dispatchAttachToWindow里面会执行mRunQueue.excuteActions,这些ac...原创 2018-07-03 11:54:41 · 785 阅读 · 0 评论 -
Glide源码解读:into方法时序图
最近在阅读Glide源码时,对into方法做了一个简单的时序图。走到SourceGenerator类里,就很难走下去了。不知道是哪里最终去进行网络连接,获取流操作。 @Override public boolean startNext() { //缓存上次的数据 if (dataToCache != null) { Object data = d...原创 2019-09-05 17:35:58 · 256 阅读 · 0 评论