Android 微信摇骰子

来源:互联网 发布:域名查询和注册 编辑:程序博客网 时间:2024/05/16 12:11

过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式。


使用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;@Overrideprotected 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 {@Overridepublic 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 {@Overridepublic 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~6Toast.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生成的虽然是伪随机数,但是在娱乐对安全性要求不高,还是可以使用的。


实现方式比较简单,以下是工程下载链接:

点击下载

1 0
原创粉丝点击