-
开发寄语
本人出于情怀,恰巧与课程设计撞了个满怀,兴趣上头,开发了一款简单实用、便捷舒服的多功能篮球计分APP,以此来纪念我大学三年的篮球生涯以及队友。希望多年来我们还可以凑在一起,打打篮球、谈谈人生,或者带着我们的孩子,一起在篮球场上组个队。在此,我致敬所有热爱篮球并追逐梦想的人。
-
开发功能
实现一款简单、便捷、实用的多功能篮球计分器,其中包括篮球计分、比赛日程、天气预报、热门比赛、主题切换等功能。
-
开发环境
平台:Android studio
SDK:Android Platform 32
Virtual device:Nexus 5 API 32
-
程序流程图
活动跳转图(图1)
MainActivity框架图(图2)
-
实现步骤
-
将活动所需要的图片文件(.jpg或.png)统一保存在drawable文件夹
-
主活动的布局文件activity_fore.xml
此处采用约束布局,定义6个Guideline控件、1个ImageView控件、2个EditText控件、2个Button控件。实现代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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="match_parent"
android:layout_height="match_parent"
tools:context=".ForeActivity">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.02" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.45" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.55" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.65" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.8" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.95" />
<ImageView
android:id="@+id/iot"
android:layout_width="366dp"
android:layout_height="249dp"
android:src="@drawable/iot"
app:layout_constraintBottom_toTopOf="@+id/guideline2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline1"
app:layout_constraintVertical_bias="0.545" />
<EditText
android:id="@+id/edit_text1"
android:layout_width="264dp"
android:layout_height="47dp"
android:hint="请输入主队队名:"
android:textColor="#000000"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/edit_text2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline2"
app:layout_constraintVertical_bias="0.309" />
<EditText
android:id="@+id/edit_text2"
android:layout_width="264dp"
android:layout_height="47dp"
android:layout_marginBottom="12dp"
android:hint="请输入客队队名:"
android:textColor="#000000"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/start"
android:layout_width="149dp"
android:layout_height="67dp"
android:backgroundTint="@color/teal_200"
android:text="开始比赛"
android:textSize="25sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline4" />
<Button
android:id="@+id/schedule"
android:layout_width="149dp"
android:layout_height="67dp"
android:backgroundTint="@color/teal_200"
android:text="比赛日程"
android:textSize="25sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline6"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline5" />
</androidx.constraintlayout.widget.ConstraintLayout>
-
主活动的java文件ForeActivity.java
此处使用接口的方式注册监听器,监听“开始比赛”或“比赛日程”两个按钮是否被点击,从而执行相关程序 -> start()、schedule()。
start()使用Intent传递队名等数据信息到第二个活动MainActivity.java,同时进行页面跳转,来到篮球计分界面。