Android自定义View面试总结

Android自定义View注意事项,初级安卓开发面试题 4.注意padding,让view支持padding,在onDraw方法中获取padding 5.注意滑动冲突,解决滑动冲突 6.尽量不要使用handl er,因为里边已有post系列方法,不需要再用handler 继承View重写onDraw方法 主要用于实现不规则的效果,即这种效果不方便通过布局的组合方式来实现。相当于就是得自己“画”了。采用这种方式需要自己支持wrap_content,padding也需要自己处理 继承ViewGroup派生特殊的Layout 主要用于实现自定义的布局,看起来很像几种V 阅读详情

自定义view,是在Android中非常重要的知识点,也是面试官喜欢考察的面试题。

很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试关于自定义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嵌套问题

RecycleView面试真题

  • RecyclerView的多级缓存机制,每一级缓存具体作用是什么,分别在什么场景下会用到哪些缓存
  • RecyclerView的滑动回收复用机制
  • RecyclerView的刷新回收复用机制
  • RecyclerView 为什么要预布局
  • ListView 与 RecyclerView区别
  • RecyclerView性能优化

WebView面试真题

  • 如何提高WebView加载速度
  • WebView与 js的交互
  • WebView的漏洞
  • JsBridge原理

文末

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。

找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。

最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿!

感谢您阅读这篇文章,如果可以收到您的点赞,我将非常荣幸,希望我们可以成为朋友,一起分享交流Android技术。

自定义view,是在Android中非常重要的知识点,也是面试官喜欢考察的面试题。

很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试关于自定义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嵌套问题

RecycleView面试真题

  • RecyclerView的多级缓存机制,每一级缓存具体作用是什么,分别在什么场景下会用到哪些缓存
  • RecyclerView的滑动回收复用机制
  • RecyclerView的刷新回收复用机制
  • RecyclerView 为什么要预布局
  • ListView 与 RecyclerView区别
  • RecyclerView性能优化

WebView面试真题

  • 如何提高WebView加载速度
  • WebView与 js的交互
  • WebView的漏洞
  • JsBridge原理

文末

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。

找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。

最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿!

感谢您阅读这篇文章,如果可以收到您的点赞,我将非常荣幸,希望我们可以成为朋友,一起分享交流Android技术。

欢迎大家一键三连支持,若需要文中资料,直接点击下方优快云官方认证微信卡片免费领取【保证100%免费】↓↓↓

Android 自定义 View 最少必要知识,最新精心整理Android面试题 自定义属性的声明与获取//1.1 在 xml 中自定义 View 属性CircleView//1.2 在 View 构造函数中获取自定义 View 属性重写测量阶段相关方法(onMeasure())@Override//2.1 根据 View 特点或业务需求计算出 View 的尺寸//2.2 通过 resolveSize() 方法修正结果。 阅读详情

相关推荐

android自定义view面试,Android开发者

现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。

m0_60635321的博客 782

2024年Android最新Android 自定义View (二) 进阶,安卓工程师面试

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

2401_84556480的博客 703

2025 最新!一线大厂 Android 自定义 View 面试真题

本文聚焦Android自定义View的Kotlin开发,精心整理了15道模拟一线大厂面试中可能出现的题目,内容涵盖事件传递机制、触摸事件处理、性能优化、测量与布局、动画实现等多方面知识,从基础到高级层层递进。每道题不仅给出详细解答,还附上难度评级,为准备Android开发面试的人员提供全面的知识梳理与应试指导,助力其在面试中充分展示技能和经验。

开发者专栏 1614

Android最全自定义view的入门,面试安卓卡顿

本人从事Android开发已经有十余年,算是一名资深的移动开发架构师了吧。根据我的观察发现,对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。所以在此将我十年载,从萌新小白一步步成长为Android移动开发架构师的学习笔记,从Android四大组件到手写实现一个架构设计,我都有一一的对应笔记为你讲解。当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。

2401_84544914的博客 372

安卓面试题之---自定义View

##一,自定义View的分类 -1.继承View或者ViewGroup类,重写onDraw方法,调用invalidate方法重新绘制View(譬如说计数器) - -2.自定义组合控件,即将几种控件组合起来形成一个新的控件,这个新的组合控件就会整合了原来每一个控件的功能(譬如说新浪微博中ListView第一行上面的状态栏),(继承组合控件布局的跟布局) - -3.自定义扩展控件,也就...

qq_38859786的博客 1万+

Android View绘制与自定义控件面试总结

继承现有控件 (如 TextView, Button)只是在现有控件基础上增加一些功能,改变一些外观。继承自现有控件,重写onDraw()等方法,在调用super.onDraw(canvas)前后加入自己的逻辑。一个带边框的TextView。继承 ViewGroup (如 LinearLayout, RelativeLayout)需要实现一种全新的布局方式。继承自ViewGroup,必须重写onMeasure()和onLayout()方法,来实现自己的测量和布局规则。

dongdeaiziji的专栏 790

Android自定义View面试官最爱问的12个高级问题

了解面试者对自定义View核心概念的理解,以及其在实际开发中的应用能力。参考简答:View与ViewGroup:View是Android界面的基本构建块,而ViewGroup是一种特殊的View,用于包含和管理其他View。自定义View的必备步骤:继承View或其子类,实现构造函数、测量、布局和绘制方法。重写onDraw方法:在该方法中进行绘制操作,实现自定义的外观和交互。测试面试者对于View绘制流程的全面理解。onDraw方法:在onDraw中进行实际的绘制操作,包括绘制图形、文本等。

大模型训练 1130

超全的Android面经_安卓面经(20/30)之自定义View全解析

自定义View在日常的开发中,用到的频率非常高,面试中主要会考察平时自定义View的实战,我们看看面试官可能会问什么吧:

a763450633的博客 1384

5个Android自定义View相关的面试题

自定义View是Android开发中一个核心的概念,它允许开发者根据应用的特定需求来创建新的视图组件。自定义View的重要性在于它提供了高度的灵活性和创新性,使得开发者可以创建出独特的用户界面和交互体验。自定义View通常涉及继承View或其子类,并重写onMeasureonLayout和onDraw等方法来定义视图的行为和外观。自定义View的绘制流程主要涉及以下几个步骤:首先,通过onMeasure方法确定View的大小;接着,在onLayout方法中确定View及其子View的位置;最后,在。

AntDream的程序世界 701

Android自定义View最全面试题及参考答案

为了创建一个完全自定义的进度条,你可以创建一个新的View类并重写onDraw()方法。init();init();init();@Override// 重新绘制视图。

大模型大数据攻城狮的专栏 1204

Android自定义View面试题与实现技巧详解

自定义View是Android开发中的高级技能之一,它是实现独特UI功能的关键。本章我们将开始自定义View的旅程,首先了解其基础结构与继承层次。为了在布局文件中使用自定义View,需要在XML中声明一个标签。这要求自定义View在Java代码中注册。通过本章的学习,我们将能够创建一个基础的自定义View,并为其添加一些简单的逻辑,为后续章节的高级功能打下坚实的基础。Android平台提供了不同的动画框架,主要分为View动画和属性动画。二者各有特点,并在不同场景下有着不同的适用性。

weixin_36149538的博客 857

Android自定义View详解,Android面试题及解析

开头 最近有粉丝反应,不想做安卓了,有朋友转到前端了,安卓不行了,问我怎么办? 自从RN,Weex这种跨平台编程语言出来以后,安卓将死的言论总是不绝于耳。随着颇有摧枯拉朽之势Flutter的出现,加之近几年的裁员潮,使这种论调好像更加可信。 恍惚间会让人想到2010年,安卓初兴,一切还是桌面应用开发的天下,当时的语言还集中中JAVA、HTML、MFC、.NET、C#,各个语言为了争夺桌面应用开发第一位,也是拼得你死我活。当时的安卓系统还是方兴未艾,谁也不知道,它会引领着另一个时代。 几年过去了,桌面开发已经

m0_56169789的博客 401

RTKLIB PPP与RTK_POST精密定位实战:从实时到事后处理的完整流程解析

本文详细解析了如何使用RTKLIB进行精密单点定位(PPP)的完整流程,涵盖从实时处理到事后处理(RTK_POST)的关键步骤。文章深入探讨了数据准备、软件配置、核心参数设置(如电离层、对流层、潮汐改正)以及常见问题排查,旨在帮助用户掌握高精度GNSS定位技术,实现从入门到精通的实战应用。

weixin_29047919的博客 278

5个Android自定义View的深度面试题及其解答

自定义View是Android开发中一个核心的概念,它允许开发者根据应用的特定需求来创建新的视图组件。自定义View的重要性在于它提供了高度的灵活性和创新性,使得开发者可以创建出独特的用户界面和交互体验。自定义View通常涉及继承View或其子类,并重写onMeasure、onLayout和onDraw等方法来定义视图的行为和外观。自定义View的绘制流程主要涉及以下几个步骤:首先,通过onMeasure方法确定View的大小;接着,在onLayout方法中确定View及其子View的位置;最后,在。

AntDream的程序世界 780

开源实战 | 基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程

本文详细介绍了基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程,涵盖从基础概念到实战技巧的各个环节。通过SolidWorks建模、Matlab运动学实现及轨迹优化策略,展示了如何实现高精度轨迹规划,适用于摄影、医疗等领域的机器人应用。

weixin_28331555的博客 403

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态

1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。

darcsdn 767

Android自定义view面试

1.view绘制流程:measure,layout,draw measure:onMeasure,measureChild,measureChildren,setMeasureDimesion 先测量子view的大小,最后测量自身的大小 layout:onLayout,setFrame 先确定自身的位置,然后调用child.layout()确定子类位置 getLeft,getRight都是相对父控件的位置,相对原点的位置是getRawX MeasureSpec:32位,父类传递过来的值和自己的LayoutP

筱筱_之家的博客 1411

人工智能数据治理——解读AI时代数据治理白皮书 2025【附全文阅读】

摘要:该白皮书面向企业数字化负责人及AI项目推进人员,探讨AI时代数据治理的战略升级。提出"好数据+好数据知识"双基石理念,强调数据需满足"三高"标准(高精度、一致性、时效性)并构建语义知识库。构建四层治理框架,包括数据采集处理、合规安全、知识库建设及质量改进,并介绍AI赋能治理的新范式,如智能ETL和治理Agent体系。同时分析"软件+AI+好数据"的应用模式,为企业实现智能数据治理提供实践指导。(149字)

cdfunlove的博客 633

Android自定义控件面试题,自定义View面试总结

本着针对面试,不负责任的态度,写下《面试总结》系列。本系列记录面试过程中各个知识点,而不是入门系列,如果有不懂的自行学习。自定义View三种方式,组合现有控件,继承现有控件,继承View本文只针对继承View的方式,另两种自行学习。1. 重写方法onMeasure、 onLayout、onDraw、onTouchEventonMeasure可能多次触发,在measure的过程中注意MeasureS...

weixin_36082346的博客 1976

(四)美赛画图篇:画图模板+画图工具

美赛画图篇:画图模板+画图工具(一)画图模板(二)画图工具 因为散点图、折线图等多与数据有关,且需相关软件生成,故此处多是通用模板。直接替换文字内容即可。 (一)画图模板 1、Visio圆圈图 适合于:指标体系(E题常用) 点击下载:1 C币 如果不想花费且时间充足,悄咪咪地说,在visio-模板搜索可以找到很多。(稍微会耗一点时间) 2、简单指标体系图PPT 适合于指标体系 点击下载:0 C币...

weixin_43689393的博客 1万+

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 641

android面试自定义view,资深面试官:自定义View的实现方式,你知道几种?

前提为什么要自定义View?怎么自定义View?当 Android SDK 中提供的系统 UI 控件无法满足业务需求时,我们就需要考虑自己实现 UI 控件。而且自定义View在面试时是很经典的一道Android面试题,对其的理解程度决定面试官看你的高度。PS:关于我本人是一个拥有6年开发经验的帅气Android工程师,记得看完点赞,养成习惯,微信搜一搜「 程序猿养成中心 」关注这个喜欢写干货的程序...

weixin_29054195的博客 1107

YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 5494

Android显示原理,安卓自定义view面试

相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

m0_60721649的博客 739

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 560

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android自定义View详解,在线面试指南_android开发自定义view面试点

面试了一位工作12年的程序员,这位老哥有3年java开发经验,2年H5,7年Android开发经验,简历上写着精通Java,Android,熟悉H5开发。没有具体的技术点。说实话我很期待这位老哥的面试,于是让人事邀约了他。老哥面试的气场很足,我也很尊敬他,一大波的自我介绍之后,我们进入了正题。我问了他Jetpack,他说几乎没用过Jetpack,于是我给他举了个小例子,老哥给我的答案是百度可以解决。

2501_90404687的博客 1068

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 自定义View都写不好还做什么Android开发
下一篇: 写给女*友的中级Android面试秘籍(含详细答案,15k级别)
Agent学习路线
博客等级 码龄6年 1万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值