📜  如何在 Android 中创建一个简单的幸运抽奖纺车?

📅  最后修改于: 2022-05-13 01:55:47.324000             🧑  作者: Mango

如何在 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

目标.png

目标.png

您可以添加任何其他您想要的类似图像。但请确保将图像分别命名为wheel.pngtarget.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();
  
            }
        });
  
    }
}


预览:

activity_main.xml

第 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();
  
            }
        });
  
    }
}

就是这样。现在我们可以运行应用程序了。确保您的项目包含以下所有文件。

这是最终应用程序的预览。

输出: