零基础安卓开发:开发简易计算器(二)——搭建布局

承接上文,本文我们将介绍安卓的布局文件。
安卓的布局文件位于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);
    }

视图介绍

以下为简要介绍:

  1. 视图View:Android的基本视图,所有控件和布局都是由View类直接或间接派生而来的。
  2. 线性布局LinearLayout:最常用的布局,多用于调整内部视图的排列顺序,该视图内部视图的排列有水平排列,以及垂直排列。
  3. 滚动视图ScrollView:手机屏幕显示空间有限,需要上下滑动或左右滑动才能拉取其余页面内容,由于其他布局节点都不支持自行滚动,所以需要ScrollView滚动视图来实现。滚动也分为垂直方向与水平方向,滚动视图下只能放一个子节点(该子节点可以滚动)。
  4. 文本视图TextView:存放文本,可配置文本显示属性。
  5. 图像视图ImageView:图像显示,可配置图像拉伸属性。
  6. 按钮Button:按钮,触发事件。派生自TextView,区别是具有按钮外观,内部有文字属性。
  7. 图像按钮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=&
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值