【Android】Android UI 开发_问答_1

UI 概览


定义布局的手段有几种?

  • 两种声明布局的方式:
    1.在 XML 布局文件 中声明 UI (建议采用)
    2.运行时实例化布局元素 (动态创建),编程创建 View 和 ViewGroup 对象 (代码)

如何将布局文件设置为某个 activity 的布局?

  • 清单文件中 activity 的 name 属性指定的 .java 文件中的 onCreate 回调方法中
setContentView(R.layout.布局文件名)

我们自定义的控件的 id 在哪个文件中?引用系统资源同引用自定义资源的 id 有什么区别?

  • R.java
    编译 app 时,SDK 工具使用 ID 名在 gen/R.java 文件中创建一个新的 资源ID 来引用该控件
  • android:id="@android:id/empty" 引用系统资源
    android:id="@+id/my_button" 引用自定义资源,+ 表示新建

如何通过 id 来引用布局中的对象?为什么通过 findViewById 这个方法得到的对象要进行类型强转?

  • 引用 XML 中的资源对象,符号 (@) + 资源类型(这里是id) + 斜线 + 资源名 (理解错误)
    在程序中创建一个 view 对象,然后通过 ID 引用布局中的对象 (改)
如 Button myButton = (Button) findViewById(R.id.my_button)
  • findViewById 方法获取的是 View 的引用
    需要强制转换成指定的类型

wrap_content、match_parent 这两个值什么含义?

  • wrap_content,将视图大小调整为其内容所需的尺寸
  • match_parent,视图尽可能采用其父视图组所允许的最大尺寸

view 的坐标系是怎样的?
在这里插入图片描述

LinerLayout 中的子元素是如何排列的?方向是怎么确定的?一行排不下,会不会折行?实验测试一下

  • 默认水平排列
  • 通过android:orientation属性指定方向
  • 不会,线性布局的所有子视图依次堆叠
    测试结果,排不下的会在最后一个叠加到一起,高度为行高

如何设置子控件的宽度或者高度相同?原理是什么?

  • 可以通过 设置宽度或高度 0dp 后,设置相等权重
  • 剩余空间按照权重分配

盒子模型是什么?
在这里插入图片描述

android:gravity同android:layout_gravity什么区别?

  • android:gravity,表示其内容的对齐方式
    android:layout_gravity,表示其在父 ViewGroup 中的对齐方式

RelativeLayout 是什么?它中的子控件怎么确定位置?注意这些子控件的属性可取什么值?什么是基线?

  • 相对布局
  • 子控件通过相对它的 兄弟view 或者它的 父view 来进行定位
  • 基线 Baseline,四线格的第三条线

TableLayout 的父类是哪个?说明什么问题?

  • LinearLayout 类
  • 表格布局可以看做线性布局,可以指定水平方向或垂直方向

TableLayout 中有多少行是由什么确定的?列是由什么确定的?

  • TableRow控件的个数确定
  • 列数最多的TableRow确定

TableRow 的宽度和高度分别是什么?它中的子控件呢?

  • 宽度定为 match_parent,高度定为 wrap_content
  • 子控件宽度高度定为 wrap_content

TableRow 中的子控件在哪列怎么确定?如何跨列?

  • android:layout_column,指定第几列,从0开始
  • android:layout_span,指定跨列的个数

GridLayout 是什么布局?

  • 网格布局
    用一组没有宽度的线将屏幕区域划分为纵横交错的格子,将子控件依次放在格子 (cell) 里

GridLayout 中的 orientation, rowCount 及 columnCount 属性是什么含义?

  • 指定其中控件的排列主序 (行主还是列主)
  • 指定总行数
  • 指定总列数

如何确定GridLayout中子控件所在的网格?如何将子控件扩展到其他网格?

android:layout_column	//确定列
android:layout_row		//确定行

android:layout_columnSpan
android:layout_rowSpan		//指定占据多少行 多少列

什么是帧布局?

  • 为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)

帧布局中的子控件按什么顺序显示?

  • 只能在屏幕左上角显示一个控件,
    如果添加多个控件,这些控件会按照顺序在屏幕的左上角重叠显示 (后定义的在上)

绝对布局中的子控件怎么确定位置?它的坐标系是什么?

  • 通过指定 x、y 坐标来控制每一个控件的位置
android:layout_x;android:layout_y; 单位 dp
  • 坐标系的第四象限为正

显示度量单位


显示度量单位分几大类?每类中的都有哪些单位?

  • 长度单位,in 英寸 (inch),pt 点 (Points),mm (毫米)
    像素单位,px (Pixel),dp (Density-independent Pixels),sp (Scale-independent Pixels)

sp同dp什么区别?px同dp什么关系,针对不同的分辨率的屏幕如何换算?

  • dip = dp,密度无关的像素,一种基于屏幕密度的抽象单位,
    sp,和dp的概念相似,单独用于表示字体大小的单位,用户可设置
  • px,对应屏幕上实际像素点
    在160dpi (dots per inch) 的屏幕上,1dp = 1px
    换算公式
px = dp * (dpi / 160)

设置大小的时候为什么dp优于px,什么原理?

  • 建议不要使用绝对单位(如像素px)来指定布局宽度和高度,
    而是使用相对测量单位,如 dp、wrap_content 或 match_parent,
    这样有助于确保你的应用在各类尺寸的设备屏幕上正确显示

国际化


所谓国际化,就是指软件在开发时应该具备支持多种语言和国家或地区的功能

为什么要提供对不同语言的支持?

  • 让不同的国家或者地区的用户看到不同的效果

怎么创建区域目录?怎么创建不同语言的表现?

  • values > 右击 > New > Values Resource File
    File name: strings
    Available qualifiers: Locale
    单击 >>
    然后选择语言 (Language: zh 例如中文)最后单击 OK
    在这里插入图片描述

链接 Android UI 开发_问答_2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值