一.View绘制的流程框架 View的绘制是从上往下一层层迭代下来的.DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制). 二.Measure流程 顾名思义,就是测量每个控件的大小. 调用measure()方法,进行一些逻辑处理,然后调用onMeasure()方法,在其中调用setMeasuredDimension()设定View的宽高信息,完成View的测量操…
原文链接 创造优秀的用户体验是我们开发者的主要目标之一.为此, 我们首先要了解系统是如何工作的, 这样我们才可以更好的与系统配合, 从它的优点中获益, 规避它的缺陷. 之前关于Android渲染过程的文章 这次我们主要关注Measure/Layout(测量和布局)的阶段, 这些阶段决定了视图的大小和位置, 以便于我们能够绘制它. Step 1: Measure 测量 目标: 确定是图的大小 视图的大小包含其子视图的大小, 且必须符合其父视图的要求 视图的大小由2个方面决定: 测量宽度与测量高度…
1.Android应用程序的资源是如何存储的,如何使用? res文件夹或者assets文件夹 res目录中的资源在R类中生成一个int变量,然后再布局文件中可以直接使用,在代码中,要getResources().getString(R.string...) assets目录中的文件必须使用文件名方式,getResources().getAssets().open("test.png") 2.res和assets目录的区别? res目录中的子目录名字有限制,而assets目录没有要求 访…
1.请说出Android中的五种布局,并介绍作用? FrameLayout(堆栈布局),层叠方式显示,类似于PhotoShop上的层叠图层. LinearLayout(线性布局),将视图以水平或者垂直方式显示. RelativeLayout(相对布局),通过确定两个视图的相对位置进行布局. TableLayout(表格布局),将视图以表格的形式排列. AbsoluteLayout(绝对布局),设置View的绝对坐标. GridLayout(网格布局),和TableLayout布局相似. 2.xm…
1.请说出Android SDK支持哪些方式显示富文本信息? 使用TextView组件可以显示富文本信息,如果要实现图文混排,需实现ImageGetter接口 使用WebView组件显示HTML页面 自定义View,覆盖onDraw方法,可以直接绘制富文本 TextView组件显示图像还可以使用ImageSpan对象 2.TextView组件如何显示图像? 使用<img>标签在TextView组件中显示图像,需要CharSequence配合 使用ImageSpan对象在TextView组件中显…
一.职能简介 Activity Activity并不负责视图控制,它只是控制生命周期和处理事件.真正控制视图的是Window.一个Activity包含了一个Window,Window才是真正代表一个窗口.Activity就像一个控制器,统筹视图的添加与显示,以及通过其他回调方法,来与Window.以及View进行交互. Window Window是视图的承载器,内部持有一个 DecorView,而这个DecorView才是 view 的根布局.Window是一个抽象类,实际在Activity中持…
转自:秋招面试宝典. 一. 基础认知 1.1 事件分发的对象是谁? 答:事件 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件). Touch事件相关细节(发生触摸的位置.时间.历史记录.手势动作等)被封装成MotionEvent对象 主要发生的Touch事件有如下四种: MotionEvent.ACTION_DOWN:按下View(所有事件的开始) MotionEvent.ACTION_MOVE:滑动View MotionEvent.ACTION_CA…
1.什么是Fragment? 你可以简单的理解为,Fragment是显示在Activity中的Activity. 它可以显示在Activity中,然后它也可以显示出一些内容. 因为它拥有自己的生命周期,可以接受处理用户的事件 并且你可以在一个Activity中动态的添加,替换,移除不同的Fragment, 因此对于信息的展示具有很大的便利性. 2.Fragment的生命周期 因为Fragment是依附于Activity存在的,因此它的生命周期受到Activity的生命周期影响. Fragment…
1.Activity的生命周期 1.1.首先查看一下Activity生命周期经典图片. 在正常情况下,一个Activity从启动到结束会以如下顺序经历整个生命周期: onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory(). 包含了六个部分,还有一个onRestart()没有调用,下面我们一一介绍这七部分内容. (1) onCreate():当 Activity 第一次创建时会被调用.这是生命周期的…
1.如何在Android应用程序的窗口上绘制图形? 继承View 实现View中的onDraw()方法 2.如何绘制圆,空心椭圆? canvas.drawArc或canvas.drawCircle方法 绘制圆 canvas.drawArc(矩形对象,0,360,true,paint); 3.绘制位图的两种方法? 法1:canvas.drawBitmap(bitmap,10,10,null);  //在画布上画图 法2:drawable.draw(canvas);  //把图粘贴到画布上 4.如何…