《Android App开发入门:使用Android Studio 2.X开发环境》——2-4 组件的布局与属性设置

简介: 本节书摘来自华章计算机《Android App开发入门:使用Android Studio 2.X开发环境》一书中的第2章,第2-4节,作者 施威铭,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2-4 组件的布局与属性设置

为了方便用户设计 App,Android Studio 事先设计好了许多常用的视觉组件,我们只要把这些组件加到布局文件的布局编辑区(或单击下方的 Text 标签,切换到文本模式加入组件的标签),就可以很快地创建按钮、文本框、输入字段、多选按钮甚至图像等视觉组件。

每一个组件在程序执行时都有一个对应的 Java 对象,这个对象的类通常与在图形化的布局编辑器中看到的组件类相同。例如,显示“Hello World!”文字的是 TextView 类的组件,实际程序执行时就会有一个 TextView 类的对应对象,只要能获取这个对应的对象,就可以调用该对象的方法操控界面上的组件,如改变文字大小、变更显示的文字等。

image

把组件拉到布局编辑区后,接着要设置它的属性,如大小、颜色、文字以及功能等(这就与在 XML 设置标签的属性是一样的)。

image

image
image

image
image

id 属性

用户在视觉设计时创建的组件要如何在 Java 程序中取用呢?要做到这一点,最重要的是帮组件设置id属性值,并为组件命名。当组件设置了 id 属性后,就会在上一节介绍过的 R.java 中产生对应的资源 ID。Android 把所有可以放到图形化布局编辑区的组件都归属于一个资源类,也就是 id 类,因此对于 id 类的这些组件,其资源 ID 就是“R.id.资源名称”。例如,将一个TextView 经由 id 属性命名为 txv,用户就可以用 R.id.txv存取该 TextView了。

image

fndViewById() 方法

image

顾名思义,?ndViewById() 就是?nd view by id,也就是根据指定的资源 ID 找出对应View对象的意思。由于 ?ndViewById() 返回的是 View 类的对象,因此需要强制转型为组件真正所属的类,才能使用组件特有的功能。

image
image

textView的常见属性

除了 id 属性以外,组件还有许多其他属性,在本书后文会陆续进行介绍,此处先看一下 textView 的几个常用属性。

image
image

在属性中设置引用

有些属性必须引用(Reference)其他资源,在设置时是以“@ 资源类 / 资源名称”的格式指定所要使用的资源,如要显示 res/mipmap/ic_launcher.png 图标文件,可将引用设为 “@mipmap/ic_launcher”。这是资源在 XML(如布局设置文件)的写法, 而之前的 “R.资源类.资源名称”是在 Java 程序中的写法(如 R.mipmap.ic_launcher)。

image

有些属性可以直接设置值,也可以引用资源,如设置组件上所要显示文字的 text 属性,就可以直接在属性字段填入要显示的文字,或者使用定义在 res/values 文件夹下 strings.xml 文件中的字符串。例如:

image
image

使用引用资源的好处是未来可以根据用户所使用的语言提供不同的资源文件,让系统自动选择符合该用户能阅读的文字、图形等,而不需要更改任何一行程序代码。

image

在属性中设置方法的名称

有些属性会引用方法(Method)而不是资源(Resource)。例如,下一节马上会用到一个叫 bigger() 的方法,用户如果把 bigger 填入 button 按钮组件的 onClick 属性字段,之后凡是单击button ,Android 系统都会根据 onClick字段的引用执行 bigger() 方法。

image

完成上述自定义方法与属性设置后,Android 就会自动在用户单击按钮时调用用户的自定义方法(bigger),达到单击按钮就放大文字的效果。

image

相关文章
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
491 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
11月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
212 0
|
Java 开发工具 Android开发
Android与iOS开发环境搭建全解析####
本文深入探讨了Android与iOS两大移动操作系统的开发环境搭建流程,旨在为初学者及有一定基础的开发者提供详尽指南。我们将从开发工具的选择、环境配置到第一个简单应用的创建,一步步引导读者步入移动应用开发的殿堂。无论你是Android Studio的新手还是Xcode的探索者,本文都将为你扫清开发道路上的障碍,助你快速上手并享受跨平台移动开发的乐趣。 ####
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
9月前
|
存储 Android开发 数据安全/隐私保护
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
1067 4
|
12月前
|
数据采集 JSON 网络安全
移动端数据抓取:Android App的TLS流量解密方案
本文介绍了一种通过TLS流量解密技术抓取知乎App热榜数据的方法。利用Charles Proxy解密HTTPS流量,分析App与服务器通信内容;结合Python Requests库模拟请求,配置特定请求头以绕过反爬机制。同时使用代理IP隐藏真实IP地址,确保抓取稳定。最终成功提取热榜标题、内容简介、链接等信息,为分析热点话题和用户趋势提供数据支持。此方法也可应用于其他Android App的数据采集,但需注意选择可靠的代理服务。
482 11
移动端数据抓取:Android App的TLS流量解密方案
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
874 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
540 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
596 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
前端开发 Java 开发工具
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
1370 18
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】