CODE函数-英雄云拓展知识分享
134
2023-10-25
【摘要】 本书摘自《基于Kotlin的Android应用程序开发》一书中第6章,第1节,由薛岗编著。
第 6 章 列表与适配器
现代智能终端设备的显示条件和硬件配置都比较宽裕,这也促使应用程序能具备更为美观的 外观和方便使用的功能。以列表方式组织的用户界面能较直接地展示业务数据,并能提供简洁的 操作功能。本章主要讨论以列表为主的界面技术,涉及的技术点包含:①GridView 和 ListView 的 使用;②适配器;③在界面中使用简单动画技术等。
本章内容将围绕一个名为 Devices(版本3)的示例程序展开。区别于以前的版本, Devices (版本3)设置了3个显示界面程序启动运行时,首先会显示窗体1。窗体1基于图标以“马赛克”方式显示设备的类型。 窗体1显示的设备类型包含 Television (电视)、 Wear (可穿戴设备)、 Phone (手机)、 Tablet( 平 板电脑)等。当窗体1中的图标被单击以后,窗体2被启动。窗体2中基于列表组件显示多个具 体的设备名称。当窗体2中的特定设备被单击后,窗体3启动。窗体3将显示具体设备的图片、 名称和详细信息。
Devices (版本3)中的窗体都基于 AppCompatActivity 类来构建。窗体1 的实现类命名为 MainActivity,对应的布局文件为 activity main.xml;窗体2的实现类命名为 ItemActivity,对应的布 局文件为activity item.xml;窗体3的实现类命名为InfoActivity,对应的布局文件为 activity info.xml。 由于窗体1以“马赛克”方式显示设备类型,所以,该程序还会使用到一个命名为 cellxml 的布 局文件。该布局用于定义局部(即每个格子内)的显示结构。另外, Devices(版本3)使用一个 特别定义的数据类,命名为 Device; 该类被用于提供程序相关的业务数据。综上所述, Devices (版本3)包含8个实现部分,分别为 MainActivity.kt、activity main.xml、cell.xml、ItemActivity.kt、 activity item.xml、InfoActivity.kt、activity info.xml和 Device.kt; Devices ( 版 本 3 ) 实 现 的 步 骤 为 准 备 程 序 所 使 用 的 资 源 、 构 建 数 据 类 ; 实 现 示 例 中 的 界 面 ;
完成界面间的协作。基于上述讨论,本章被组织为3个部分,分别为:①项目的资源和数据准备;
② 应用中界面的实现;③界面显示内容的动画效果。
6.1 项目资源和数据准备
通 过 Android Studio 新建项目以后,除了MainActivity 类和对应的布局定义(activity main.xml), Devices ( 版 本 3 ) 还 需 要 使 用 两 个 窗 体 类 。 两 个 窗 体 类 中 的 一 个 命 名 为ItemActivity ( 生 成 对 应 文 件 包 含 ItemActivity.kt 和 activity item.xml), 另 外 一 个 为 InfoActivity ( 生 成 对 应 文 件 包 含InfoActivity.kt和 activity info.xml)。
Devices ( 版 本 3 ) 在 实 现 时 会 使 用 到 图 片 资 源 , 相 关 图 片 的 命 名 分 别 为 phone.png、tablet.png、 tv.png、wear.png, 分 别 对 应 于 显 示 的 Phone ( 手 机 ) 、Tablet ( 平 板 电 脑 ) 、Television ( 电 视 ) 和 Wear (可穿戴设备)信息类型。相关图片在程序实现前复制到[项目目录]\applsrclmainlresldrawable中 。Android Studio 会 自 动 识 别 这 些 资 源 , 并 将 它 们 组 织 为 项 目 的 组 成 部 分 。
Devices ( 版 本 3 ) 中 的 数 据 类 为Device, 类 中 有 3 个 属 性 :name ( 类 型 为String)、desc ( 类 型 为String)、rid ( 类 型 为Int)。 这些属性分别用于描述设备的名称、描述信息、图片标识。其中, 属 性 rid 的 类 型 为 整 型 , 相 关 的 值 来 源 于 开 发 环 境 中 的 资 源 标 识 ( 即 项 目 中 的 图 片 资 源 标 识 , 基于 项 目 的R 类 来 确 定 , 标 识 使 用 的 结 构 为R.drawable. 文 件 名)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~