自定义View都写不好还做什么Android开发
2023-09-21 本文已影响0人
进击的老六
什么时候会用到自定义 View?在我们的日常开发中,可能会遇到一些界面、控件无法用 Android 系统内置的 View 来完成的,这时候就需要我们使用自定义 View 来进行绘制了。
自定义 View 这东西很多人会比较畏惧,如果你认为他比较难,关键还是缺少实践写得少;如果你认为很简单,那可能是你没有遇到过那些奇葩的效果,需要高等数学和各种算法。
今天给大家分享一份字节大佬整理的《Android自定义View揭密》,揭开它的神秘面纱,也许你就会发现,其实它并不可怕。
自定义View基础
- View的分类
- View类简介
- AttributeSet与自定义属性
- View视图结构
- Android坐标系
- View位置(坐标)描述
- 位置获取方式
- Android中颜色相关内容
View树的绘制流程
- View树的绘制流程是谁负责的?
- view的添加
- view的绘制流程
- measure
- layout
- draw
LayoutParams
- MarginLayoutParams
- LayoutParams与View如何建立联系
- addView
- 自定义LayoutParams
- LayoutParams常见的子类
MeasureSpec
- MeasureSpecs 的意义
- MeasureSpec值的确定
View绘制面试真题
- View绘制流程
- MeasureSpec是什么
- 子View创建MeasureSpec创建规则是什么
- 自定义Viewwrap_content不起作用的原因
- 在Activity中获取某个View的宽高有几种方法
- 为什么onCreate获取不到View的宽高
- Android绘制和屏幕刷新机制原理
- Choreography原理
- 什么是双缓冲
- 为什么使用SurfaceView
- 什么是SurfaceView
- View和SurfaceView的区别
- SurfaceView为什么可以直接子线程绘制
- getWidth()方法和getMeasureWidth()区别
- invalidate() 和 postInvalidate() 方法的区别
- 自定义 View 的流程和注意事项
- 自定义View如何考虑机型适配
- 自定义控件优化方案
- invalidate怎么局部刷新
View事件分发面试真题
- View事件分发机制
- view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者优先级
- onTouch 和onTouchEvent 的区别
- ACTION_CANCEL什么时候触发
- 事件是先到DecorView还是先到Window
- 点击事件被拦截,但是想传到下面的View,如何操作
- 如何解决View的事件冲突
- 在 ViewGroup 中的 onTouchEvent 中消费 ACTION_DOWN 事件,ACTION_UP事件是怎么传递
- Activity ViewGroup和View都不消费ACTION_DOWN,那么ACTION_UP事件是怎么传递的
Viewpager&Fragment面试真题
- Fragment的生命周期 & 结合Activity的生命周期
- Activity和Fragment的通信方式, Fragment之间如何进行通信
- 为什么使用Fragment.setArguments(Bundle)传递参数
- FragmentPageAdapter和FragmentStatePageAdapter区别及使用场景
- fragment懒加载
- ViewPager2与ViewPager区别
- fragment嵌套问题
WebView面试真题
- 如何提高WebView加载速度
- WebView与 js的交互
- WebView的漏洞
- JsBridge原理