这篇文章主要讲解了Android如何实现微信摇骰子游戏,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式。
使用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;
}
}
};
}
看完上述内容,是不是对Android如何实现微信摇骰子游戏有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。