欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现微信摇骰子游戏

程序员文章站 2023-12-19 23:07:34
过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式。 使用java的random函数很容易实现,以骰子为例: 1.骰子摇动的动画,...

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

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; 
   } 
  } 
 
 }; 
} 

random生成的虽然是伪随机数,但是在娱乐对安全性要求不高,还是可以使用的。

实现方式比较简单,以下是工程下载链接:android微信摇骰子

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: