大家好,我是 Android 开发的初学者,因此我们将不胜感激!
问题
我正在制作一款纸牌游戏,其最后有一个无尽的纸牌晃动动画。我想添加的是,每当用户点击屏幕上的任何内容时,我想让游戏重新开始
详细信息
请注意,我有一个线性布局作为背景和几个按钮(这些是卡片)在线性布局上对齐(如果需要,我可以提供代码和 xml 文件)
我的解决方案
我认为可以工作的是一个“不可见”对话框,它可以单击结束当前游戏 Activity 并启动同一 Activity 的 Intent ..是这样吗?如果是这样,我怎样才能制作一个不可见的对话框(不是透明)?
如果您需要任何东西,请随时询问,我会尽快提供!
更新
这是我的代码部分,我想在其中执行上面所说的操作
if (correctCounter>2){
for(int ct=0;ct<memoCards.length;ct++){
memoCards[ct].setClickable(false);
}
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
int temp = (int) (Math.random() * 5);
Animation shake = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.shake);
memoCards[temp].startAnimation(shake);
}
});
}
},0,1000);
}
我想要的是当屏幕上发生触摸事件时我希望游戏重新开始
最佳答案
如果我理解您的问题,您需要的是为您的 Activity 实现 OnClickListener,即
public class MainActivity extends AppCompatActivity implements OnClickListener{
ImageView b1;
TextView b2;
int correctCounter=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout ln2 = (LinearLayout) findViewById(R.id.ll1);
ln2.setOnClickListener(this);
b1 = (ImageView) findViewById(R.id.imageView);
b2 = (TextView) findViewById(R.id.textView);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
correctCounter++;
if (correctCounter>20) {
View parent = (View) v.getParent();
parent.performClick();
}
}
});
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
correctCounter++;
if (correctCounter>20) {
View parent = (View) v.getParent();
parent.performClick();
}
}
});
}
@Override
public void onClick(View v) {
if (correctCounter>20) {
/*Restart Activity*/
}
}
}
监听器将尊重您的子组件的点击事件,并且仅在您点击可用空间时触发。
编辑:我添加了布局 xml 以更好地理解逻辑
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ll1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" />
</LinearLayout>
关于android - 完成后重新启动存储卡游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32846256/