Android實(shí)現(xiàn)微信搖骰子游戲
過年怎么可以不玩紅包娛樂一下呢,微信里的搖骰子大小和石頭剪刀布就是不錯(cuò)的游戲方式。
使用Java的Random函數(shù)很容易實(shí)現(xiàn),以骰子為例:
1.骰子搖動(dòng)的動(dòng)畫,使用animation-list幀動(dòng)畫實(shí)現(xiàn)
2.生成1~6的隨機(jī)數(shù),1 + new Random().nextInt(6)
以下是代碼實(shí)現(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 "一點(diǎn)小"; case 2: return "二點(diǎn)小"; case 3: return "三點(diǎn)小"; case 4: return "四點(diǎn)大"; case 5: return "五點(diǎn)大"; case 6: return "六點(diǎn)大"; default: return ""; } } final Handler diceHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case 1: resetDiceImage(); break; default: break; } } }; }
Random生成的雖然是偽隨機(jī)數(shù),但是在娛樂對(duì)安全性要求不高,還是可以使用的。
實(shí)現(xiàn)方式比較簡(jiǎn)單,以下是工程下載鏈接:Android微信搖骰子
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android判斷是否有拍照權(quán)限的實(shí)例代碼
android在開發(fā)中有時(shí)候要判斷應(yīng)用中是否有某項(xiàng)權(quán)限,下面通過本文給大家分享Android判斷是否有拍照權(quán)限的實(shí)例代碼,需要的的朋友參考下吧2017-07-07封裝的android監(jiān)聽手指左右滑動(dòng)屏幕的事件類分享
這篇文章主要介紹了封裝的android監(jiān)聽手指左右滑動(dòng)屏幕的事件類分享,本文分別給出了簡(jiǎn)單處理方法的代碼和封裝好的處理類代碼,需要的朋友可以參考下2015-05-05android webview 中l(wèi)ocalStorage無(wú)效的解決方法
這篇文章主要介紹了android webview 中l(wèi)ocalStorage無(wú)效的解決方法,本文直接給出解決方法實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-06-06Android解析JSON格式數(shù)據(jù)的兩種方式(JSONObject和Gson)
json數(shù)據(jù)的解析相對(duì)而言,還是比較容易的,實(shí)現(xiàn)的代碼也十分簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于Android解析JSON格式數(shù)據(jù)的兩種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Android仿ViVO X6 極速閃充動(dòng)畫效果
這篇文章主要介紹了Android仿ViVO X6 極速閃充動(dòng)畫效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07Android App中用Handler實(shí)現(xiàn)ViewPager頁(yè)面的自動(dòng)切換
這篇文章主要介紹了Android App中用Handler實(shí)現(xiàn)ViewPager頁(yè)面的自動(dòng)切換的方法,類似于相冊(cè)自動(dòng)播放,主要是切換后要提示當(dāng)前頁(yè)面所在的位置,需要的朋友可以參考下2016-05-05Android沉浸式狀態(tài)欄設(shè)計(jì)的實(shí)例代碼
本篇文章主要介紹了Android沉浸式狀態(tài)欄設(shè)計(jì)的實(shí)例代碼,整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)收到新短信后自動(dòng)發(fā)郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05