【Android】Android UI 开发_问答_1

UI 概览

定义布局的手段有几种?

  • 两种声明布局的方式:
    <在 XML 中声明 UI
    例如 <LinearLayout> 元素用于创建一个 LinearLayout 视图组 (ViewGroup)
    <运行时实例化布局元素,编程创建 View 和 ViewGroup 对象
  • 一般采用第一种

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

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

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

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

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

  • 引用XML中的资源对象,符号 (@) + 资源类型(这里是id) + 斜线 + 资源名
  • 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属性是什么含义?

  • 指定View排列主序
  • 指定行数
  • 指定列数

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

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

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

什么是帧布局?

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

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

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

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

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

显示度量单位

像素单位分几大类?每类中的都有哪些单位?

  • 相对单位、绝对单位

  • 绝对单位,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,
    这样有助于确保你的应用在各类尺寸的设备屏幕上正确显示

链接 Android UI 开发_问答_2.

发布了81 篇原创文章 · 获赞 171 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43763494/article/details/105015844