过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式。
使用Java的Random函数很容易实现,以骰子为例:
1.骰子摇动的动画,使用animation-list帧动画实现
2.生成1~6的随机数,1 + new Random().nextInt(6)
以下是代码实现,文末提供图片资源下载:
package com.zms.dicedemo;
import java.util.Random;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private ImageView imageDice;
private Button btnGo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialLayout();
}
private void initialLayout() {
imageDice = (ImageView) findViewById(R.id.imageDice);
btnGo = (Button) findViewById(R.id.btnGo);
btnGo.setOnClickListener(new MyOnClickListener());
}
class MyOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnGo:
imageDice.setImageDrawable(getResources().getDrawable(
R.drawable.anim_dice));
new Thread(new DiceThread()).start();
break;
default:
break;
}
}
}
public class DiceThread implements Runnable {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message messageDice = new Message();
messageDice.what = 1;
diceHandler.sendMessage(messageDice);
}
}
private void resetDiceImage() {
int randomInt = 1 + new Random().nextInt(6); // 1~6
Toast.makeText(MainActivity.this, getChineseByNumber(randomInt),
Toast.LENGTH_SHORT).show();
imageDice.setImageDrawable(getResources().getDrawable(
getResources().getIdentifier("dice_" + randomInt, "drawable",
getPackageName())));
}
private String getChineseByNumber(int number) {
switch (number) {
case 1:
return "一点小";
case 2:
return "二点小";
case 3:
return "三点小";
case 4:
return "四点大";
case 5:
return "五点大";
case 6:
return "六点大";
default:
return "";
}
}
final Handler diceHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
resetDiceImage();
break;
default:
break;
}
}
};
}
Random生成的虽然是伪随机数,但是在娱乐对安全性要求不高,还是可以使用的。
实现方式比较简单,以下是工程下载链接:Android微信摇骰子
您可能感兴趣的文章:微信游戏打飞机游戏制作(java模拟微信打飞机游戏)利用Kotlin实现破解Android版的微信小游戏--跳一跳