承接上文,本文我们将介绍安卓的布局文件。
安卓的布局文件位于layout文件夹,使用xml语言来描述布局。
作为app的开发者(理科生),最难的事情不过于设计界面的UI了,UI决定界面代码,功能需求决定java代码。
以下为博主设计的示例:
至于怎么达到图片所示的效果,就是本文接下来的内容了
布局尺寸
提到布局,尺寸与适配是个不得不提的话题。安卓提供了多种尺寸单位,然而常用的只有三种,px,dp,sp。我们简要介绍一下这三个单位的特点。
px:绝对单位,由于java文件不支持dp、sp,只能将dp或sp转换为px使用。
dp:相对单位,用于xml文件除文字外的尺寸使用
sp:相对单位,用于xml文件文字的尺寸使用。与dp的区别为,在客户端设备设置文字大小时,dp不会随着用户的设置改变,而sp会。
由于sp,dp在java文件中需要转换为px
以下为转换代码:
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
* 将px值转换为sp值,保证文字大小不变
*/
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
/**
* 将sp值转换为px值,保证文字大小不变
*/
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
视图介绍
以下为简要介绍:
- 视图View:Android的基本视图,所有控件和布局都是由View类直接或间接派生而来的。
- 线性布局LinearLayout:最常用的布局,多用于调整内部视图的排列顺序,该视图内部视图的排列有水平排列,以及垂直排列。
- 滚动视图ScrollView:手机屏幕显示空间有限,需要上下滑动或左右滑动才能拉取其余页面内容,由于其他布局节点都不支持自行滚动,所以需要ScrollView滚动视图来实现。滚动也分为垂直方向与水平方向,滚动视图下只能放一个子节点(该子节点可以滚动)。
- 文本视图TextView:存放文本,可配置文本显示属性。
- 图像视图ImageView:图像显示,可配置图像拉伸属性。
- 按钮Button:按钮,触发事件。派生自TextView,区别是具有按钮外观,内部有文字属性。
- 图像按钮ImageButton:派生自ImageView,区别是具有按钮外观,内部有图片属性。
关于如何实现本文的布局
首先,一个垂直布局的LinearLayout,用于排列子视图。
在这个LinearLayout里放置两个TextView视图,一个用于显示输入算式,另一个用于显示结果。
接下来就是按钮布局的设计,按钮需要横向摆放。所以在这个垂直布局的LinearLayout中放置多个水平布局的LinearLayout,再将按钮放到这些子LinearLayout中。
布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width=&