说起老虎机,玩过的人应该记得这种类型的图(这是主界面),下面就从最基本的知识分析整个APP的制作过程,也同时把android中的一些基础知识巩固一遍
首先说一下这个APP的基本操作:
1.点击下注按钮后,会进入下注界面
2.上下拖动选择下注比,并选择固定金额或自己输入金额,点击确定返回主界面
3.然后开始游戏,出现如图效果,转动的位置的图片背景会变成黄色
主要功能描述就是这样,由于不会发动态图,所以真实效果无法展示,有兴趣的可以下载试试哈
下面开始一步步分析整个APP构建过程:
首先说一下这个界面的编写:
主界面:
1.整体采用线性布局,其中的每一行又是一个线性布局,采用权重的方式给每个子线性布局分配高度
2.水果和金币是ImageView控件,金币数量和红色的提示文字采用TextView,而且红色文字实现跑马灯果,最后一行是两个隐藏背景的按钮
下注界面:
1.整体依旧采用线性布局
2.最上面的水果比是ListView控件,该控件下方有4个按钮(下注金额),最后一行是一个输入框和一个确定按钮
然后是根据界面分析怎么写代码(核心部分):
1.对于主界面,主要就是转动的过程不好做,需要两个定时器,一个负责转动的总时间(总时间采用随机数的方式,确保每次转动的时间尽可能地不同),一个负责获取转动过程中黄色背景所在的图片的id,当用户选好下注比及下注金额后,点击开始时,则同时启动这两个计时器,启动后,第一个定时器会处于sleep状态(时间是在一定范围随机生成的),而第二个定时器则会一直计算选中图片的序号(当然这个序号是0~11的循环,因为总共有12张图片啊),当第一个定时器的sleep状态结束后,则会立即通知第二个定时器停止计算序号,此时的序号即为中奖的序号,然后与用户选择的图片的id进行比较,最终得出结果
2.对于下注界面,主要是采用SimpleAdapter实现可以下注的图片的ListView,指明图片的名称及下注比,由于下注是在下注界面完成,而游戏开始则是在主界面,所以就需要向主界面传递下注的相关信息(下注比、下注金额),这是采用onActivityReslt由下注界面进行值的回传来实现
4.最后在Activity中重写onPause方法,在该方法中使用SharedPreferences保存数据,确保当应用被kill时,金币总数可以保存下来,当然,由于是采用SharedPreferences进行保存,所以当应用被卸载并重装时,保存的数据自然会丢失,应用则会初始化到最初的金币值
最后就代码来进行详述:
主界面的Acivity类如下:
package com.hkk.hi.tiger;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button