Android UI

Android UI

UI简介

Android应用的界面是由微件(View 对象)和布局(ViewGroup 对象)构建而成的。View的一些子类被统称为Widgets(工具)

布局方式

  1. 在 XML 中声明 UI 元素。
  2. 运行时实例化布局元素。

加载XML

Activity.onCreate() 回调实现.一般通过调用setContentView(),以 R.layout.layout_file_name 形式向其传递对布局资源的引用来执行此操作。

属性

每个视图对象和 ViewGroup 对象都支持各自的 XML 属性。属性可以被继承
使用dp进行度量。

布局

相对布局

RelativeLayout   以相对位置显示各子view的位置,每个view的位置通过相对它的兄弟view或者它的父view来进行定位。

TableRow中的控件在哪一列由android:layout_column指定,该值从0开始,也可以一个元素跨多列,由android:layout_span指定跨列的个数。
也就是说android:layout_column是指从哪一列开始,由android:layout_span是指从这一列开始占据的行数
比如

<TableRow>
    <Button
        android:layout_column="1"
        android:layout_span="3"

        android:text="demo"/>


</TableRow>

    <TableRow>
        <Button />
        <Button />
        <Button />
    </TableRow>

网络布局

GridLayout是Android4.0(API14)之后的布局,它用一组没有宽度的线划分为纵横交错的格子,将子控件放在格子(cell)里。网格线由网格线下标表示,有n列的网格就有n+1个网格下标,编号从0到n。

Cell中的子控件可以通过android:layout_column及android:layout_row来确定它在网格中的位置,由android:layout_columnSpan和android:layout_rowSpan来确定该子控件占据多少列或多少行。
如果没有指定子控件的位置,则由GridLayout的布局属性orientation, rowCount 及 columnCount自动定位。

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="4"
android:orientation="horizontal

android:columnCount="4"表示有4列布局
android:orientation="horizontal 表示水平布局
android:layout_column="2" 部件开始的位置

android:layout_columnSpan="2" 部件占据的位置 但是只显示一个部件长度

android:layout_gravity="fill" 部件会占据所拥有的全部空间

android:layout_rowSpan="3"部件所占据的的位置

--match_parent--,表示该view同它的父view相同大小(减去父view的padding)

wrap_content,表示刚好可以包含它的内容,(加上该view的padding)

指定字符资源文件

位置:Android工程中包括一个字符串资源文件res/values/strings.xml
添加你所需要的文本内容

权重

所有视图的默认 weight 值都为 0,所以如果您仅将某个视图的 weight 值指定为大于 0,那么等到其他所有视图都获得所需空间后,该视图便会填满所有剩余空间。

主题和样式

样式:也是定义在XML文件中,但同布局文件相分离。就如同web网页设计一样,布局和样式是相分离的。
主题:就是应用于整个Activity或app的样式,而不是针对某个View比如上面的TextView。当把样式当做主题的时候,Activity或应用中的每个view都会使用该样式。

当主题和样式中的属性发生冲突时,样式的优先于主题.

  1. 定义样式

  2. 样式属性

  3. 把样式和主题应用到UI

  4. 把样式应用到某个View

  5. 把主题应用到Activity或app上

  6. 基于平台版本选择主题

  7. 使用系统样式和主题

国际化

创建区域(Locale)目录和string文件

  1. 在res/values的values上右击,选择new,再选择Values resource file
  2. 在File name:中输入strings,在Available qualifiers中选择:Language,再单击
  3. 在Language:中选择语言
  4. 最后点击ok

发表评论