一、思维导图
二、界面设计:计算器界面
三、涉及知识点
- 网格布局(GridLayout)
- 线性布局(LinearLayout)
- 文本视图(TextView)
- 按钮(Button)
四、准备背景图片,拷贝到mipmap里
五、主布局资源文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/background"
android:padding="15dp"
android:orientation="vertical"
tools:context="net.hzy.demo0404.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="0123456789"
android:textSize="25sp"
android:textColor="#000000"
android:gravity="right|center_vertical"
android:paddingRight="10dp"
android:background="@drawable/custom_border"/>
<GridLayout
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:columnCount="5"
android:rowCount="6">
<Button
android:text="MC"
android:layout_row="0"
android:layout_column="0"/>
<Button
android:text="MR"
android:layout_row="0"
android:layout_column="1"/>
<Button
android:text="MS"
android:layout_row="0"
android:layout_column="2"/>
<Button
android:text="M+"
android:layout_row="0"
android:layout_column="3"/>
<Button
android:text="M-"
android:layout_row="0"
android:layout_column="4"/>
<Button
android:text="←"
android:layout_row="1"
android:layout_column="0"/>
<Button
android:text="CE"
android:layout_row="1"
android:layout_column="1"/>
<Button
android:text="C"
android:layout_row="1"
android:layout_column="2"/>
<Button
android:text="±"
android:layout_row="1"
android:layout_column="3"/>
<Button
android:text="√"
android:layout_row="1"
android:layout_column="4"/>
<Button
android:text="7"
android:layout_row="2"
android:layout_column="0"/>
<Button
android:text="8"
android:layout_row="2"
android:layout_column="1"/>
<Button
android:text="9"
android:layout_row="2"
android:layout_column="2"/>
<Button
android:text="/"
android:layout_row="2"
android:layout_column="3"/>
<Button
android:text="%"
android:layout_row="2"
android:layout_column="4"/>
<Button
android:text="4"
android:layout_row="3"
android:layout_column="0"/>
<Button
android:text="5"
android:layout_row="3"
android:layout_column="1"/>
<Button
android:text="6"
android:layout_row="3"
android:layout_column="2"/>
<Button
android:text="*"
android:layout_row="3"
android:layout_column="3"/>
<Button
android:text="1/x"
android:layout_row="3"
android:layout_column="4"/>
<Button
android:text="1"
android:layout_row="4"
android:layout_column="0"/>
<Button
android:text="2"
android:layout_row="4"
android:layout_column="1"/>
<Button
android:text="3"
android:layout_row="4"
android:layout_column="2"/>
<Button
android:text="-"
android:layout_row="4"
android:layout_column="3"/>
<Button
android:layout_height="95dp"
android:text="="
android:layout_row="4"
android:layout_column="4"
android:layout_rowSpan="2"/>
<Button
android:layout_width="128dp"
android:text="0"
android:layout_row="5"
android:layout_column="0"
android:layout_columnSpan="2"/>
<Button
android:text="."
android:layout_row="5"
android:layout_column="2"/>
<Button
android:text="+"
android:layout_row="5"
android:layout_column="3"/>
</GridLayout>
</LinearLayout>
六、在drawable目录里添加custom_border.xml
用于以下部分的渐变
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="15dp"/>
<solid android:color="#eeeeee"/>
<stroke
android:width="1dp"
android:color="#aaaaaa"/>
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp"/>
<gradient
android:startColor="#bbbbbb"
android:endColor="#ffffff"/>
</shape>
如上完成