前面我们通过《使用Android Studio创建Android项目详细步骤及注意事项》介绍了创APP基本流程和步骤,显而易见通过Android Studio创建项目是比较轻松的,接下来由南昌APP开发公司工程师接着介绍如何规划和设计界面布局。
一、用户界面设计
当前,activity_quiz.xml文件定义了默认的activity布局。应用默认的XML布局文件内容经常 改变,但总是与代码如下所示文件相似。
代码清单1-1 默认的activity布局(activity_quiz.xml)
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".QuizActivity">
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
应用activity的默认布局定义了两个组件(widget):RelativeLayout和TextView。
组件是用户界面的构造模块。组件可以显示文字或图像,与用户交互,甚至布置屏幕上的其 他组件。按钮、文本输入控件和选择框等都是组件。
Android SDK内置了多种组件,通过配置各种组件可获得所需的用户界面及行为。每一个组 件都是View类或其子类(如TextView或Button)的一个具体实例。 图1-
9展示了代码清单1-1中定义的RelativeLayout和TextView是如何在屏幕上显示的。
不过,图1-9所示的默认组件并不是我们需要的,QuizActivity的用户界面需要下列五个组件:
一个垂直LinearLayout组件;
一个TextView组件;
一个水平LinearLayout组件;
两个Button组件。 图1-10展示了以上组件是如何构成QuizActivity用户界面的。
图1-9 显示在屏幕上的默认组件
图1-10 布置并显示在屏幕上的组件
下面我们在activity_quiz.xml文件中定义这些组件。
如代码清单1-2所示,修改activity_quiz.xml文件。注意,需删除的XML已打上删除线,需添 加的XML以粗体显示。我们统一使用这样的版式约定。 代码清单1-2 在XML文件(activity_quiz.xml)中定义组件
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".QuizActivity">
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="24dp"
android:text="@string/question_text" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >