《第一行代码》(四)
这一节主要讲的是UI设计。
第一个控件是TextView,用于显示控件上的文本信息。使用 android:gravity 来指定文字的对齐方式,可选值有 top、 bottom、 left、 right、 center
等。通过 android:textSize 属性可以指定文字的大小,通过 android:textColor 属性可以指定文字的颜色
第二个控件是Button,和TextView类似。
EditText 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。
ImageView是用于在界面上展示图片的一个控件。
ProgressBar 用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。
AlertDialog 可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此一般 AlertDialog 都是用于提示一些
非常重要的内容或者警告信息
详解四种基本布局
布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,布局的内部除了放置控件外,也可以放置布局。
LinearLayout
将它所包含的控件在线性方向上依次排列,通过 android:orientation 属性指定排列方向为水平或垂直。android:layout_gravity 是用于指定控件在布局中的对齐方式,
android:layout_weight。这个属性允许我们使用比例的方式来指定控件的大小,它在手机屏幕的适配性方面可以起到非常重要的作用
RelativeLayout
通过相对定位的方式让控件出现在布局的任何位置,可以相对父布局或其他控件来进行布局,
FrameLayout
这种布局没有任何的定位方式,所有的控件都会摆放在布局的左上角
TableLayout
允许我们使用表格的方式来排列控件。每加入一个 TableRow 就表示在表格中添加了一行,然后在 TableRow中每加入一个控件,就表示在该行中加入了一列。
创建自定义控件
引入布局:新建一个布局 title.xml,在activity_main.xml 中通过通过一行 include 语句将标题栏布局引入进来就可以了:<include layout="@layout/title" />
ListView
用于展示大量数据的,数组中的数据是无法直接传递给 ListView 的,我们还需要借助适配器来完成。ArrayAdapter可以通过泛型来指定要适配的数据类型, 然后在构造函数
中把要适配的数据传入即可。
单位和尺寸
dp 是密度无关像素的意思,也被称作 dip,和 px 相比,它在不同密度的屏幕中的显示比例将保持一致。
sp 是可伸缩像素的意思,它采用了和 dp 同样的设计理念,解决了文字大小的适配问题。
总结一下,在编写 Android 程序的时候,尽量将控件或布局的大小指定成 match_parent或 wrap_content,如果必须要指定一个固定值,则使用 dp 来作为单位,指定文字大小
的时候使用 sp 作为单位。