面试 | Android View、布局、动画、适配

布局方式


1、Android 中常用的布局都有哪些?

  • FrameLayout
  • RelativeLayout
  • LinearLayout
  • AbsoluteLayout
  • TableLayout
  • GrideLayout
    Android 4.0新增的网格布局,性能及功能都要比tablelayout好,比如GridLayout布局中的单元格可以跨越多行,而tablelayout则不行

2、XML布局方式比Java代码布局方式好在哪里?

  • 将程序的表现层和控制层分离;
  • 在后期修改用户界面时,无须更改程序的源程序;
  • 可通过可视化工具直接看到所设计的用户界面,有利于加快界面设计的过程

3、谈谈 UI 中, Padding 和 Margin 有什么区别?

  • padding 是站在父 view 的角度描述问 题,它规定它里面的内容必须与这个父 view 边界的距离。
  • margin 则是站在自己的角度描述问题,规定自己和其他(上下左右)的 view 之间的距离,如果同一级只有一个 view,那么它的效果基本上就和 padding 一样了。

4、android:layout_gravity 和 android:gravity 的区别?

  • android:layout_gravity 是让该布局在其父控件中的布局方式,
  • android:gravity是该布局布置其字对象的布局方式。

5、Android中布局的优化·查看详细内容

  • 尽可能减少布局的嵌套层级
  • 使用<include>标签复用相同的布局代码
  • 使用<merge>标签减少视图层次结构
  • 通过<ViewStub>实现 View 的延迟加载

View相关


1、View基础坐标及滑动相关知识问答·请参考
文章内容包括:

  • View的坐标参数及其关系
  • View中的几个重要方法
  • 获取View的位置坐标失败问题怎么处理?
  • view滑动方式比较
  • 其他View相关常见面试题

2、View事件分发机制总结及常见相关面试题·请参考

3、Android 之 自定义View·请参考

动画


1、Android中的动画有哪些,区别是什么

  • 逐帧动画(Drawable Animation): 加载一系列Drawable资源来创建动画,简单来说就是播放一系列的图片来实现动画效果,可以自定义每张图片的持续时间
  • 补间动画(Tween Animation): Tween可以对View对象实现一系列简单的动画效果,比如位移,缩放,旋转,透明度等等。但是它并不会改变View属性的值,只是改变了View的绘制的位置,比如,一个按钮在动画过后,不在原来的位置,但是触发点击事件的仍然是原来的坐标。
  • 属性动画(Property Animation): 动画的对象除了传统的View对象,还可以是Object对象,动画结束后,Object对象的属性值被实实在在的改变了

屏幕适配


1、如何实现屏幕分辨率的自适应?

  • 通过权重(layout_weight)的方式来分配每个组件的大小,也可以通过具体的像素(dip)来确定大小。
  • 尽量使用Relativelayout 。
    已知应用支持平台设备的分辨率,可以提供多个layout_320480 ...
    drawable-hdpi,drawable-mdpi,drawable-ldpi分别代表分辨率为480
    800,360480,240360, 放置图片大小相差1.5倍
    最后还需要在AndroidManifest.xml里添加下面一段,没有这一段自适应就不能实现:
    <supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:anyDensity = "true"/>
    在</application>标签和</manifest> 标签之间添加上面那段代码。即可。
    备注:三者的解析度不一样,就像你把电脑的分辨率调低,图片会变大一样,反之分辨率高,图片缩小
    还可以通过.9.png实现图片的自适应

2、怎么适配多种屏幕

  • 支持屏幕类型
<supports-screens android:resizeable=["true"| "false"]
  android:smallScreens=["true" | "false"]   //是否支持小屏
  android:normalScreens=["true" | "false"]  //是否支持中屏
  android:largeScreens=["true" | "false"]   //是否支持大屏
  android:xlargeScreens=["true" | "false"]  //是否支持超大屏
  android:anyDensity=["true" | "false"]     //是否支持多种不同密度的屏幕
  android:requiresSmallestWidthDp=”integer”
  android:compatibleWidthLimitDp=”integer”
  android:largestWidthLimitDp=”integer”/>
  • 对不同大小的屏幕提供不同的layout
    比如,如果需要对大小为large的屏幕提供支持,需要在res目录下新建一个文件夹layout-large/并提供layout。当然,也可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换
  • 对不同密度的屏幕提供不同的图片
  • 通过.9图片实现图片的自适应
  • 其他一些Tips
    • 通过权重(layout_weight)的方式来分配每个组件的大小,也可以通过具体的像素(dip)来确定大小
    • 尽量使用Relativelayout 。
    • 不要使用具体的像素来表示控件尺寸,如果长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。
    • 以中等密度的正常屏幕(HVGA)为基准进行界面布局

3、屏幕相关的一些专业术语

  • 尺寸:通常是指屏幕的物理尺寸,是屏幕的对角线长度,单位是英寸。
  • 分辨率:是指屏幕上拥有的像素的总数,通常使用“宽度×长度” ,但是屏幕的分辨率并不意味着屏幕比例;
  • 屏幕比例:决定屏幕比例的是设备的物理长度和物理宽度
  • 密度:是指以屏幕分辨率为基础,沿屏幕长宽方向排列的像素;密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多,甚至会非常非常多的像素排列在同一区域。
  • 总结
    • 物理尺寸相同的情况下,分辨率越高,图像和文字看起来越小!
    • 物理尺寸相同的情况下,密度越高,则分辨率越高,图像和文字看起来越清晰!
    • 分辨率和密度相同的情况下,物理尺寸越小,图像和文字看起来越清晰!
  • 总结
    • 密度是160dpi的屏幕,1dip等于1px。(160除以160)
    • 密度是240dpi的屏幕,1dip等于1.5px。(240除以160)
    • 密度是320dpi的屏幕,1dip等于2px。(320除以160)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容