美文网首页
自定义View都写不好还做什么Android开发

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

作者: 进击的老六 | 来源:发表于2023-09-21 16:15 被阅读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原理

相关文章

网友评论

      本文标题:自定义View都写不好还做什么Android开发

      本文链接:https://www.haomeiwen.com/subject/gsszvdtx.html