个人推荐:
📢📢📢 前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下
"通俗易懂,风趣幽默"
,感觉非常有意思,忍不住分享一下给大家。点击跳转到教程。
前言:
代码都调试了,基本上没有问题,如果大家发现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));
}
}