Android實現(xiàn)微信搖骰子游戲
過年怎么可以不玩紅包娛樂一下呢,微信里的搖骰子大小和石頭剪刀布就是不錯的游戲方式。

使用Java的Random函數(shù)很容易實現(xiàn),以骰子為例:
1.骰子搖動的動畫,使用animation-list幀動畫實現(xiàn)
2.生成1~6的隨機數(shù),1 + new Random().nextInt(6)
以下是代碼實現(xiàn),文末提供圖片資源下載:
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生成的雖然是偽隨機數(shù),但是在娛樂對安全性要求不高,還是可以使用的。
實現(xiàn)方式比較簡單,以下是工程下載鏈接:Android微信搖骰子
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
封裝的android監(jiān)聽手指左右滑動屏幕的事件類分享
這篇文章主要介紹了封裝的android監(jiān)聽手指左右滑動屏幕的事件類分享,本文分別給出了簡單處理方法的代碼和封裝好的處理類代碼,需要的朋友可以參考下2015-05-05
android webview 中l(wèi)ocalStorage無效的解決方法
這篇文章主要介紹了android webview 中l(wèi)ocalStorage無效的解決方法,本文直接給出解決方法實現(xiàn)代碼,需要的朋友可以參考下2015-06-06
Android解析JSON格式數(shù)據(jù)的兩種方式(JSONObject和Gson)
json數(shù)據(jù)的解析相對而言,還是比較容易的,實現(xiàn)的代碼也十分簡單,下面這篇文章主要給大家介紹了關于Android解析JSON格式數(shù)據(jù)的兩種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07
Android App中用Handler實現(xiàn)ViewPager頁面的自動切換
這篇文章主要介紹了Android App中用Handler實現(xiàn)ViewPager頁面的自動切換的方法,類似于相冊自動播放,主要是切換后要提示當前頁面所在的位置,需要的朋友可以參考下2016-05-05
Android實現(xiàn)收到新短信后自動發(fā)郵件功能
這篇文章主要為大家詳細介紹了Android實現(xiàn)收到新短信后自動發(fā)郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05

