Android篮球计分器App
16lz
2021-01-24
前言:代码都调试了,基本上没有问题,如果大家发现bug希望在下方留言,一起学习学习,这项目是上课教的,但是代码我看了一下感觉不是很简便,所以改进了一下,主要是上课那个软件一个按钮一个事件,觉得有点麻烦,然后软件的图标,给大家介绍一个网址,下载地址阿里巴巴矢量图标;
一:运行效果
二:布局代码
<?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=".MainActivity"> <androidx.constraintlayout.widget.Guideline android:id="@+id/guideline" 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="vertical" app:layout_constraintGuide_percent="0.5" /> <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.16" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="A队" android:textColor="#F44336" android:textSize="40sp" android:textStyle="bold" app:layout_constraintEnd_toStartOf="@+id/textView2" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/guideline" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="B队" android:textColor="#4D00FE" android:textSize="40sp" app:layout_constraintBottom_toBottomOf="@+id/textView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/textView" app:layout_constraintTop_toTopOf="@+id/textView" /> <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.31053352" /> <TextView android:id="@+id/score_a" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="0" android:textColor="#F44336" android:textSize="80sp" android:textStyle="bold" app:layout_constraintEnd_toStartOf="@+id/score_b" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/guideline3" /> <TextView android:id="@+id/score_b" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="0" android:textColor="#4D00FE" android:textSize="80sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/score_a" app:layout_constraintTop_toTopOf="@+id/guideline3" /> <Button android:id="@+id/btna_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#F44336" android:text="+1" android:textColor="#201F1F" app:layout_constraintBottom_toTopOf="@+id/btna_2" app:layout_constraintEnd_toStartOf="@+id/btnb_1" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/score_a" /> <Button android:id="@+id/btna_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#F44336" android:text="+2" app:layout_constraintBottom_toTopOf="@+id/btna_3" app:layout_constraintEnd_toStartOf="@+id/btnb_2" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/btna_1" /> <Button android:id="@+id/btna_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:background="#F44336" android:text="+3" app:layout_constraintBottom_toTopOf="@+id/img_cancel" app:layout_constraintEnd_toStartOf="@+id/btnb_3" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/btna_2" /> <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" /> <Button android:id="@+id/btnb_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#4D00FE" android:text="+1" app:layout_constraintBottom_toTopOf="@+id/btnb_2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/btna_1" app:layout_constraintTop_toBottomOf="@+id/score_b" /> <Button android:id="@+id/btnb_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#4D00FE" android:text="+2" app:layout_constraintBottom_toTopOf="@+id/btnb_3" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/btna_2" app:layout_constraintTop_toBottomOf="@+id/btnb_1" /> <Button android:id="@+id/btnb_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:background="#4D00FE" android:text="+3" app:layout_constraintBottom_toTopOf="@+id/img_reset" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/btna_3" app:layout_constraintTop_toBottomOf="@+id/btnb_2" /> <ImageView android:id="@+id/img_cancel" android:layout_width="134dp" android:layout_height="76dp" android:layout_marginTop="8dp" android:src="@drawable/back" app:layout_constraintEnd_toStartOf="@+id/img_reset" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/guideline5" /> <ImageView android:id="@+id/img_reset" android:layout_width="134dp" android:layout_height="76dp" android:layout_marginTop="8dp" android:src="@drawable/rsset" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/img_cancel" app:layout_constraintTop_toTopOf="@+id/guideline5" /></androidx.constraintlayout.widget.ConstraintLayout>
三:后端代码
package cn.cg.basketballscorer;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener { //定义数组存放加分 private final int scoreArray[]={1,2,3}; private int lastScore_a,lastScore_b,score_a,score_b; private Button btna_1,btna_2,btna_3,btnb_1,btnb_2,btnb_3; private ImageView img_cancel,img_rest; private TextView test_score_a,test_score_b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); inintView(); } private void inintView() { //获取按钮id btna_1=findViewById(R.id.btna_1); btna_2=findViewById(R.id.btna_2); btna_3=findViewById(R.id.btna_3); btnb_1=findViewById(R.id.btnb_1); btnb_2=findViewById(R.id.btnb_2); btnb_3=findViewById(R.id.btnb_3); //得分情况和清零 img_cancel=findViewById(R.id.img_cancel); img_rest=findViewById(R.id.img_reset); test_score_a=findViewById(R.id.score_a); test_score_b=findViewById(R.id.score_b); //按钮实现监听 btna_1.setOnClickListener(this); btna_2.setOnClickListener(this); btna_3.setOnClickListener(this); btnb_1.setOnClickListener(this); btnb_2.setOnClickListener(this); btnb_3.setOnClickListener(this); img_rest.setOnClickListener(this); img_cancel.setOnClickListener(this); } //点击事件 @Override public void onClick(View v) { switch (v.getId()){ case R.id.btna_1: scoreAdd(0,scoreArray[0]); break; case R.id.btna_2: scoreAdd(0,scoreArray[1]); break; case R.id.btna_3: scoreAdd(0,scoreArray[2]); break; case R.id.btnb_1: scoreAdd(1,scoreArray[0]); break; case R.id.btnb_2: scoreAdd(1,scoreArray[1]); break; case R.id.btnb_3: scoreAdd(1,scoreArray[2]); break; case R.id.img_reset: reset(); break; case R.id.img_cancel: cancel(); break; default: break; } } //取消上次加分操作 private void cancel() { if (score_a!=0&&score_a-lastScore_a>=0){ score_a-=lastScore_a; } if (score_b!=0&&score_b-lastScore_b>=0){ score_b-=lastScore_b; } ShowText(); } //重置功能,弹出提示框 private void reset() { //弹出提示框,提示用户你是否要重置 AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("提示") .setIcon(R.drawable.pointout) .setMessage("你确定要重置分数吗?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { score_a=0; score_b=0; ShowText(); dialog.dismiss();; } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog dialog=builder.create(); dialog.show(); } //退出软件,弹出提示框 @Override public void onBackPressed() { AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("提示") .setIcon(R.drawable.warn) .setMessage("你确定要退出?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { MainActivity.this.finish(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog dialog=builder.create(); dialog.show(); } //进行加分 private void scoreAdd(int Tage,int score){ //Tage: 0:a 1:b if (Tage==0||Tage==1){ if (Tage==0){ //表示a进行加分 lastScore_b=0; lastScore_a=score; score_a+=lastScore_a; }else if (Tage==1){ //表示对b进行加分 lastScore_a=0; lastScore_b=score; score_b+=lastScore_b; } ShowText(); } } //进行显示 private void ShowText(){ test_score_a.setText(Integer.toString(score_a)); test_score_b.setText(Integer.toString(score_b)); }}
四:项目中使用的图片
更多相关文章
- Android(安卓)Studio目录结构浅析
- Android用代码完成颜色渐变处理
- 温馨提示:Android(安卓)的 XML 文件是是区分大小写的
- 《Android第一行代码》书籍划重点记录
- 布局之六GridLayout,Space
- Xamrin开发安卓笔记(一)
- Android(安卓)弹出框LemonBubble提示控件
- Android(安卓)Studio Tips(OSX)
- [置顶] 声波通信(声波传输)在iOS、Android中的应用场景深入分析(含