如何在 Android 中创建一个简单的幸运抽奖纺车?
先决条件:
- 面向初学者的 Android 应用开发基础知识
- 安装和设置 Android Studio 指南
- 如何在 Android Studio 中创建/启动新项目?
- 运行您的第一个 Android 应用程序
- Android 中的 CountDownTimer 示例
- Java中的随机类
我们将构建一个幸运抽奖旋转轮,让您在单击按钮时旋转轮子。这是我们将要构建的应用程序的一瞥。该应用程序包含一个带有单个 TextView、两个 ImageView 和一个用于旋转轮子的 Button 的单个 Activity,下面给出了一个示例视频,以了解我们将在本文中做什么。请注意,我们将使用Java语言来实现这个项目。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。
第 2 步:添加必要的资产
现在,转到app > res > drawable ,然后将以下图像粘贴到 drawable 文件夹中。
轮子.png :
目标.png :
您可以添加任何其他您想要的类似图像。但请确保将图像分别命名为wheel.png和target.png 。将图像粘贴到可绘制文件夹中后,它看起来像这样,
第 3 步:使用 activity_main.xml文件
我们已经为我们正在构建的应用程序添加了必要的资源文件。现在,让我们为我们的应用程序设计 UI。将此 XML 文件添加到app > res > layout 。下面是activity_main.xml文件的代码。
XML
Java
package com.cs.luckyspinner;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
Button btnSpin;
ImageView ivWheel;
CountDownTimer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initializing views
btnSpin = findViewById(R.id.btnSpin);
ivWheel = findViewById(R.id.ivWheel);
// creating an object of Random class
// to generate random numbers for the spin
Random random = new Random();
// on click listener for btnSpin
btnSpin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// disabling the button so that user
// should not click on the button
// while the wheel is spinning
btnSpin.setEnabled(false);
// reading random value between 10 to 30
int spin = random.nextInt(20)+10;
// since the wheel has 10 divisions, the
// rotation should be a multiple of
// 360/10 = 36 degrees
spin = spin * 36;
// timer for each degree movement
timer = new CountDownTimer(spin*20,1) {
@Override
public void onTick(long l) {
// rotate the wheel
float rotation = ivWheel.getRotation() + 2;
ivWheel.setRotation(rotation);
}
@Override
public void onFinish() {
// enabling the button again
btnSpin.setEnabled(true);
}
}.start();
}
});
}
}
预览:
第 4 步:使用 主要活动。Java
现在是时候初始化 MainActivity 中的所有内容了。我们在Java中使用Random类来生成一个随机数来旋转,并使用CountDownTimer类来将图像每毫秒旋转 2 度。这是 MainActivity 的完整代码。下面是MainActivity 的代码。 Java文件。代码中添加了注释以更详细地理解代码。
Java
package com.cs.luckyspinner;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
Button btnSpin;
ImageView ivWheel;
CountDownTimer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initializing views
btnSpin = findViewById(R.id.btnSpin);
ivWheel = findViewById(R.id.ivWheel);
// creating an object of Random class
// to generate random numbers for the spin
Random random = new Random();
// on click listener for btnSpin
btnSpin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// disabling the button so that user
// should not click on the button
// while the wheel is spinning
btnSpin.setEnabled(false);
// reading random value between 10 to 30
int spin = random.nextInt(20)+10;
// since the wheel has 10 divisions, the
// rotation should be a multiple of
// 360/10 = 36 degrees
spin = spin * 36;
// timer for each degree movement
timer = new CountDownTimer(spin*20,1) {
@Override
public void onTick(long l) {
// rotate the wheel
float rotation = ivWheel.getRotation() + 2;
ivWheel.setRotation(rotation);
}
@Override
public void onFinish() {
// enabling the button again
btnSpin.setEnabled(true);
}
}.start();
}
});
}
}
就是这样。现在我们可以运行应用程序了。确保您的项目包含以下所有文件。
这是最终应用程序的预览。
输出: