Android App开发基础(3)——App的设计规范

这篇具有很好参考价值的文章主要介绍了Android App开发基础(3)——App的设计规范。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3 App的设计规范

本节介绍了App工程的源码设计规范,首先App将看得见的界面设计与看不见的代码逻辑区分开,然后利用XML标记描绘应用界面,同时使用Java代码书写程序逻辑,从而形成App前后端分离的设计规约,有利于提高App集成的灵活性。

3.1 界面设计与代码逻辑

手机的功能越来越强大,某种意义上相当于微型电脑,比如打开一个电商App,仿佛是在电脑上浏览网站。网站分为用户看得到的网页,以及用户看不到的Web后台;App也分为用户看得到的界面,以及用户看不到的App后台。虽然Android允许使用Java代码描绘界面,但不提倡这么做,推荐的做法是将界面设计从Java代码剥离出来,通过单独的XML文件定义界面布局,就像网站使用HTML文件定义网页那样。
直观地看,网站的前后端分离设计,App的前后端分离设计如图所示
Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

把界面设计与代码逻辑分开,不仅参考了网站的Web前后端分离,还有下列几点好处。

(1)使用XML文件描述App界面,可以很方便地在Android Studio上预览界面效果。比如新创建的App项目,默认首页布局为activity_main.xml,单击界面右上角的Design按钮,即可看到如图所示的预览界面。如果XML文件修改了Hello World的文字内容,立刻就能在预览区域观看最新界面。倘若使用Java代码描绘界面,那么必须运行App才能看到App界面,无疑费时许多。
Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

(2)一个界面布局可以被多处代码复用,比如看图界面,既能通过商城购物代码浏览商品图片,也能通过商品评价代码浏览买家晒单。

(3)反过来,一段Java代码也可能适配多个界面布局,比如手机有竖屏与横屏两种模式,默认情况App采用同一套布局,然而在竖屏时很紧凑的界面布局,切换到横屏往往变得松垮乃至变形。

竖屏时很紧凑的界面布局:
Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio
 
 横屏时候的界面布局:
Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

鉴于竖屏与横屏遵照一样的业务逻辑,仅仅是屏幕方向不同,若要调整的话,只需分别给出竖屏时候的界面布局,以及横屏时候的界面布局。因为用户多数习惯竖屏浏览,所以res/layout目录下放置的XML文件默认为竖屏规格,另外在res下面新建名为layout-land的目录,用来存放横屏规格的XML文件land是landscape的缩写,意思是横向,Android把layout-land作为横屏XML的专用布局目录。然后在layout-land目录创建与原XML同名的XML文件,并重新编排界面控件的展示方位,调整后的横屏界面如图所示,从而有效适配了屏幕的水平方向。

Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

3.2 利用XML标记描绘应用界面

在上一篇文章“1.2 App的开发语言”末尾,给出了安卓控件的XML定义例子,如下所示:

<TextView
	android:id="@+id/tv_hello"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="Hello World!" />

注意到TextView标签以“<”开头,以“/>”结尾,为何尾巴多了个斜杆呢?要是没有斜杆,以左右尖括号包裹标签名称,岂不更好?其实这是XML的标记规范,凡是XML标签都由标签头与标签尾组成,标签头以左右尖括号包裹标签名称,形如“”;标签尾在左尖括号后面插入斜杆,以此同标签头区分开,形如“”。标签头允许在标签名称后面添加各种属性取值,而标签尾不允许添加任何属性,因此上述TextView标签的完整XML定义是下面这样的:

<TextView
	android:id="@+id/tv_hello"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="Hello World!">
</TextView>

考虑到TextView仅仅是个文本视图,其标签头和标签尾之间不会插入其他标记,所以合并它的标签头和标签尾,也就是让TextView标签以“/>”结尾,表示该标签到此为止。

然而不是所有情况都能采取简化写法,简写只适用于TextView控件这种末梢节点。好比一棵大树,大树先有树干,树干分岔出树枝,一些大树枝又分出小树枝,树枝再长出末端的树叶。一个界面也是先有根节点(相当于树干),根节点下面挂着若干布局节点(相当于树枝),布局节点下面再挂着控件节点(相当于树叶)。因为树叶已经是末梢了,不会再包含其他节点,所以末梢节点允许采用“/>”这种简写方式。

譬如下面是个XML文件的布局内容,里面包含了根节点、布局节点,以及控件节点:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="match_parent"
	android:layout_height="match_parent">
	<!-- 这是个线性布局, match_parent意思是与上级视图保持一致-->
	<LinearLayout
		android:layout_width="match_parent"
		android:layout_height="match_parent">
		<!-- 这是个文本视图,名字叫做tv_hello,显示的文字内容为“Hello World!” -->
		<TextView
			android:id="@+id/tv_hello"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:text="Hello World!" />
	</LinearLayout>
</LinearLayout>

上面的XML内容,最外层的LinearLayout标签为该界面的根节点,中间的LinearLayout标签为布局节点,最内层的TextView为控件节点。由于根节点和布局节点都存在下级节点,因此它们要有配对的标签头与标签尾,才能将下级节点包裹起来。根节点其实是特殊的布局节点,它的标签名称可以跟布局节点一样,区别之处在于下列两点:

(1)每个界面只有一个根节点,却可能有多个布局节点,也可能没有中间的布局节点,此时所有控件节点都挂在根节点下面。

(2)根节点必须配备“xmlns:android=“http://schemas.android.com/apk/res/android””,表示指定 XML内部的命名空间,有了这个命名空间,Android Studio会自动检查各节点的属性名称是否合法,如果不合法就提示报错。至于布局节点就不能再指定命名空间了。

有了根节点、布局节点、控件节点之后,XML内容即可表达丰富多彩的界面布局,因为每个界面都能划分为若干豆腐块,每个豆腐块再细分为若干控件罢了。三种节点之外,尚有“”这类注释标记,它的作用是包裹注释性质的说明文字,方便其他开发者理解此处的XML含义。

3.3 使用Java代码书写程序逻辑

在XML文件中定义界面布局,已经明确是可行的了,然而这只是静态界面,倘若要求在App运行时修改文字内容,该当如何是好?倘若是动态变更网页内容,还能在HTML文件中嵌入JavaScript代码,由js片段操作Web控件。但Android的XML文件仅仅是布局标记,不能再嵌入其他语言的代码了,也就是说,只靠XML文件自身无法动态刷新某个控件。

XML固然表达不了复杂的业务逻辑,这副重担就得交给App后台的Java代码了。Android Studio每次创建新项目,除了生成默认的首页布局activity_main.xml之外,还会生成与其对应的代码文件 MainActivity.java。赶紧打开MainActivity.java,看看里面有什么内容,该Java文件中MainActivity类的内容如下所示:

public class MainActivity extends AppCompatActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
}

可见MainActivity.java的代码内容很简单,只有一个MainActivity类,该类下面只有一个onCreate方
法。注意onCreate内部的setContentView方法直接引用了布局文件的名字activity_main,该方法的意思是往当前活动界面填充activity_main.xml的布局内容。现在准备在这里改动,把文字内容改成中文。

首先打开activity_main.xml,在TextView节点下方补充一行android:id=“@+id/tv_hello”,表示给它起个名字编号;然后回到MainActivity.java,在setContentView方法下面补充几行代码,具体如下:

public class MainActivity extends AppCompatActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 当前的页面布局采用的是res/layout/activity_main.xml
		setContentView(R.layout.activity_main);
		// 获取名叫tv_hello的TextView控件,注意添加导包语句import android.widget.TextView;
		TextView tv_hello = findViewById(R.id.tv_hello);
		// 设置TextView控件的文字内容
		tv_hello.setText("你好,世界!!!");
	}
}

新增的两行代码主要做了这些事情:先调用findViewById方法,从布局文件中取出名为tv_hello的
TextView控件;再调用控件对象的setText方法,为其设置新的文字内容。
代码补充完毕,重新运行测试App,发现应用界面变成了如图所示的样子。
Android App开发基础(3)——App的设计规范,Android开发修炼之路,android,android studio

可见使用Java代码成功修改了界面控件的文字内容。

本章节其他文章
Android App开发基础(1)—— App的开发特点
Android App开发基础(2)—— App的工程结构
Android App开发基础(3)—— App的设计规范

本笔记参考于[B站动脑学院],仅作学习用途,方便随时查看。 参考资料:2022 最新 Android
基础教程,从开发入门到项目实战,看它就够了,更新中文章来源地址https://www.toymoban.com/news/detail-827238.html

到了这里,关于Android App开发基础(3)——App的设计规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android毕业设计-------基于 Android 剧院购票APP的开发与设计

    摘要:近年来,随着社会的发展和科技方面的创新,越来越多的人选择使用手机应用程序来购买剧场票。本文将探讨基于 Android 平台的剧院购票应用程序的开发和设计。该应用程序将为用户提供浏览剧场列表、查看剧场详情、选择座位并购买剧场票的功能。在开发方面,我们

    2024年01月24日
    浏览(45)
  • 02 java ---- Android 基础app开发

    目录 相对布局 显示一个美女  显示两个美女 安卓APP启动过程 安卓布局控件 常用布局之相对布局 常用布局之相对布局 padding和margin 按键美化  常用布局之线性布局 安卓按键响应的几种方式 直接设置按键的onClick绑定的函数 自定义类实现按键监听事件的接口 匿名内部类实现

    2024年02月04日
    浏览(60)
  • 基于Android的学生信息管理App设计(Android studio开发)

    目 录 一、 题目选择(题目、选题意义) 3 二、 设计目的 3 1、 初衷 3 2、 结合实际 3 3、 使用工具 3 三、 最终页面效果展示 4 1、 登陆界面 4 2、 主界面 5 3、 各个功能模块 6 四、 各部分设计 11 1、活动页面Activity布局文件 11 2、Activity的编程 13 五、 总结 17 题目:基于Android的

    2024年02月08日
    浏览(96)
  • Android开发的《大众设计App》项目介绍

    该《大众设计App》的功能介绍如下: 1、登录注册功能 登录、注册页面效果如下所示: 2、用户信息修改功能 (各个修改功能均已实现,因修改栏目较多不再逐一展示) 3、设计衣服的功能 (也是本App的核心功能) 页面效果如下图。分为上下两个区,上面部分是预览设计效果

    2024年02月02日
    浏览(36)
  • 基于android校园新闻APP开发的设计与实现

    目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 研究背景 1 1.2 研究意义 1 1.3研究现状 1 1.4设计思路及内容 2 第二章 系统开发环境及相关技术 3 2.1开发环境 3 2.2 Java SDK 3 2.3 Eclipse 3 2.4 ADT 3 2.5 Android SDK 4 2.6 JSP技术 7 2.7 JSON 8 2.8JDBC技术 8 第三章 系统分析 9 3.1 研究目标 9 3.2 需求分析 9 3

    2024年02月09日
    浏览(42)
  • Android开发详解:第3章《App UI 设计》

    View View类在Android中可以理解为视图。它占据屏幕上的一个矩形区域,负责提供控件绘制和事件处理的方法。如果把Android界面比喻成窗户,那么每块玻璃都是一个view,View类是所有UI控件。 View类位于android.view包中;文本框控件TextView是View类的子类,位于android.widget包中。 在A

    2024年02月04日
    浏览(47)
  • Android studio课程设计开发实现---日记APP

    你们好,我是oy,介绍一个简易日记APP。 1.启动页、引导页及登陆注册 2.日记相关功能 3.个人中心界面 实现应用启动页及引导页 实现设置密码进入APP,对密码进行加密处理 实现底部导航栏,分为日记列表,新建日记,个人中心模块 实现对日记删除、修改、新增的基础功能

    2024年02月03日
    浏览(62)
  • 基于android studio开发的火车票购票系统app,android移动开发课设,毕业设计

    基于android studio开发实现火车票购票系统app 适用于android移动开发学习项目,课程设计,毕业设计等 开发工具:android studio 或者intellij idea专业版 操作系统:windows10 java: JDK11 构建工具Gradle : gradle-7.0.0 模拟器AVD:pixel 3XL API 30 具体AVD配置详情如下 APP功能 该APP包含17个Activity,每

    2024年02月09日
    浏览(52)
  • Android Studio开发实战:从零基础到App上线

    第1章  Android开发环境搭建 1     1.1  Android开发简介 1         1.1.1  Android的发展历程 1         1.1.2  Android Studio的发展历程 2     1.2  搭建Android Studio开发环境 2         1.2.1  计算机配置要求 2         1.2.2  安装Android Studio 3         1.2.3  下载Android的S

    2024年02月20日
    浏览(45)
  • 基于android的健康运动管理app的设计与开发(文章+源码)

    目录 1、项目简介 2、设计说明 3、实现效果 4、源码获取及技术文档展示 本文采用B/S架构,基于Android技术和SSM框架开发,后端使用MySQL数据库。在系统设计方面,考虑到用户和管理员的不同需求,分别实现了运动记录、健康建议、数据统计、用户管理、数据分析等功能。在实

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包