2-4 组件的布局与属性设置
为了方便用户设计 App,Android Studio 事先设计好了许多常用的视觉组件,我们只要把这些组件加到布局文件的布局编辑区(或单击下方的 Text 标签,切换到文本模式加入组件的标签),就可以很快地创建按钮、文本框、输入字段、多选按钮甚至图像等视觉组件。
每一个组件在程序执行时都有一个对应的 Java 对象,这个对象的类通常与在图形化的布局编辑器中看到的组件类相同。例如,显示“Hello World!”文字的是 TextView 类的组件,实际程序执行时就会有一个 TextView 类的对应对象,只要能获取这个对应的对象,就可以调用该对象的方法操控界面上的组件,如改变文字大小、变更显示的文字等。
把组件拉到布局编辑区后,接着要设置它的属性,如大小、颜色、文字以及功能等(这就与在 XML 设置标签的属性是一样的)。
id 属性
用户在视觉设计时创建的组件要如何在 Java 程序中取用呢?要做到这一点,最重要的是帮组件设置id属性值,并为组件命名。当组件设置了 id 属性后,就会在上一节介绍过的 R.java 中产生对应的资源 ID。Android 把所有可以放到图形化布局编辑区的组件都归属于一个资源类,也就是 id 类,因此对于 id 类的这些组件,其资源 ID 就是“R.id.资源名称”。例如,将一个TextView 经由 id 属性命名为 txv,用户就可以用 R.id.txv存取该 TextView了。
fndViewById() 方法
顾名思义,?ndViewById() 就是?nd view by id,也就是根据指定的资源 ID 找出对应View对象的意思。由于 ?ndViewById() 返回的是 View 类的对象,因此需要强制转型为组件真正所属的类,才能使用组件特有的功能。
textView的常见属性
除了 id 属性以外,组件还有许多其他属性,在本书后文会陆续进行介绍,此处先看一下 textView 的几个常用属性。
在属性中设置引用
有些属性必须引用(Reference)其他资源,在设置时是以“@ 资源类 / 资源名称”的格式指定所要使用的资源,如要显示 res/mipmap/ic_launcher.png 图标文件,可将引用设为 “@mipmap/ic_launcher”。这是资源在 XML(如布局设置文件)的写法, 而之前的 “R.资源类.资源名称”是在 Java 程序中的写法(如 R.mipmap.ic_launcher)。
有些属性可以直接设置值,也可以引用资源,如设置组件上所要显示文字的 text 属性,就可以直接在属性字段填入要显示的文字,或者使用定义在 res/values 文件夹下 strings.xml 文件中的字符串。例如:
使用引用资源的好处是未来可以根据用户所使用的语言提供不同的资源文件,让系统自动选择符合该用户能阅读的文字、图形等,而不需要更改任何一行程序代码。
在属性中设置方法的名称
有些属性会引用方法(Method)而不是资源(Resource)。例如,下一节马上会用到一个叫 bigger() 的方法,用户如果把 bigger 填入 button 按钮组件的 onClick 属性字段,之后凡是单击button ,Android 系统都会根据 onClick字段的引用执行 bigger() 方法。
完成上述自定义方法与属性设置后,Android 就会自动在用户单击按钮时调用用户的自定义方法(bigger),达到单击按钮就放大文字的效果。