在本文中,我们将在Android中使用Java和XML构建Magic 8 Ball App项目。该应用程序基于决策应用程序。在此应用中,用户可以问球他们应该做出什么决定。球将随机回答“是”,“否”,“不确定”以及其他类似答案。此应用程序中只有一个活动。下面给出了一个示例GIF,以了解我们将在本文中做些什么。
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
第2步:首先进入编码部分,您必须做一些准备工作
球图像:下面列出了所有球图像。将它们保存在资源中的可绘制文件夹中。转到应用>“ res”>“ drawable”,然后粘贴以下文件:
- 球1
- 球2
- 球3
- 球4
- 球5
在themes.xml文件中将样式更改为NoActionBar :
步骤3:使用activity_main.xml文件
XML代码用于构建活动的结构及其样式部分。它包含一个TextView 在活动的最顶部以显示标题。然后它包含一个ImageView 球在活动中心的位置。最后,我们在活动的底部有一个按钮,用于要求应用程序做出决定。这是一个单一活动的应用程序。以下是activity_main.xml文件的代码。
XML
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// link all the variables with its id
final ImageView imageView = (ImageView) findViewById(R.id.image_eightBall);
Button button = (Button) findViewById(R.id.askButton);
// create an array to store all the images
final int a[] = {R.drawable.ball2, R.drawable.ball3, R.drawable.ball4, R.drawable.ball5};
// ask button's onClick function
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// generate a number using Random() function
Random random = new Random();
int x = random.nextInt(4);
// set the image to the view
imageView.setImageResource(a[x]);
}
});
}
}
步骤4:使用MainActivity。 Java文件
在Java文件中,我们将为Ask按钮创建一个onClickListener()函数,还将创建一个数组来存储所有图像的ID。在onClickListener()内部,我们将使用Random()函数从1-4生成一个随机数。之后,我们将从图像视图中随机数位置数组中设置图像。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// link all the variables with its id
final ImageView imageView = (ImageView) findViewById(R.id.image_eightBall);
Button button = (Button) findViewById(R.id.askButton);
// create an array to store all the images
final int a[] = {R.drawable.ball2, R.drawable.ball3, R.drawable.ball4, R.drawable.ball5};
// ask button's onClick function
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// generate a number using Random() function
Random random = new Random();
int x = random.nextInt(4);
// set the image to the view
imageView.setImageResource(a[x]);
}
});
}
}