自定义View都写不好还做什么Android开发

本文详述了Android自定义View的基础知识,包括View的分类、绘制流程、LayoutParams、MeasureSpec等内容,并剖析了View事件分发机制。通过实例解析常见面试题,帮助开发者掌握自定义View的核心技巧和面试要点。
摘要由CSDN通过智能技术生成

什么时候会用到自定义 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原理


篇幅有限,详细内容就不作完全展示了,欢迎大家一键三连支持,若需要这份资料,直接点击下方CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值