目前android端应用市场有很多随机选号的APP,但是功能大多很单一,基本上没有什么动画和互动效果。小胖月安卓版不仅可以随机选号、叫号功能,还可以设置数字范围。

1.随机选号

比如公司员工有300个人,就是300个号,范围设置1~300,假设一等奖10个号,那就抽10次,出过了一等奖的号码,在后面的奖中不会再出现。

核心代码主要使用到RandomUtil类,从数组中随机获取一个数,动画方面主要是android通用的动画效果。

package com.zjl.myapplication.utils;import android.util.Log;import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;// int num=(int)(Math.random()*(max-min+1)+min);
public class RandomUtil {private static List<Integer> bag2 = new ArrayList<>();private static int min;private static int max;public static void main(String[] args) {min = 1;max = 10;bag2 = putNumber(min, max);hide = 25;while (true) {if (isNotEmpty()) {int a = getNumber(getLocation());} else {//bag2 = putNumber();break;}}}//根据给定范围插入数据public static List<Integer> putNumber(int min, int max) {List<Integer> list = new LinkedList<>();for (int i = min; i <= max; i++) {list.add(i);}bag2 = list;return bag2;}//返回从bag2里取的数public static int getNumber(int location) {int number = bag2.get(location);bag2.remove(location);return number;}public static int getLocation() {//随机出百分率位置int location = new Random().nextInt(bag2.size());return location;}//数组不为空public static boolean isNotEmpty(){return bag2.size() != 0;}
}

另外出过的号码需要从数组remove掉,防止重复号码出现:

                    dataList.remove(index); //把选中的数移除//Log.e("nnn", "Thread: " + Arrays.toString(dataList.toArray()));Message msg = Message.obtain(handler);msg.what = 4;msg.obj = data;handler.sendMessage(msg);onPause();

2.叫号功能

叫号功能使用的是安卓系统自带的TTS语音播报,初始化TextToSpeech类,一般在onCreate方法中初始化:

tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int i) {if (i == TextToSpeech.SUCCESS) {tts.setLanguage(Locale.CHINESE);}}
});

值得注意的是有些系统高度定制的手机使用TextToSpeech是无效果的,原因是系统没有内置的语音播报库,需要自己在应用商城下载安装后语音播报才有声音。如果大家在开发过程中遇到这类问题,先检查手机有没有安装语音播报库。

设置语音播报的文本:

private void choseNumber1() {choseTv.postDelayed(new Runnable() {@Overridepublic void run() {int s = Integer.parseInt(tv1.getText().toString());if (counts > 1) {if (isOneNum) {sb.append(s).append("");choseTv.setText(sb.toString());isOneNum = false;} else {sb.append("、").append(s);choseTv.setText(sb.toString());}} else {sb.append(s);choseTv.setText(sb.toString());}if(TextUtils.isEmpty(customSound)){tts.speak(tv1.getText().toString() + "号", TextToSpeech.QUEUE_FLUSH, null);} else {tts.speak(tv1.getText().toString() + "号" + customSound, TextToSpeech.QUEUE_FLUSH, null);}}}, 80);}

获取textView上的文本和自定义的播报内容拼接成完整的播报内容,通过View的postDelayed方法去刷新UI。

3.互动功能

        互动模块功能集成的是腾讯兔小巢组件,该组件是免费的,大家有兴趣自己去了解一下,基本上几行代码就能搞定。通过接入这个组件,省去了很多繁琐的需求功能开发。减轻了开发者的工作量,而且简单使用。

第一步先去官网注册属于自己app的url,然后通过webview.load(url)即可成功接入该组件。

webview代码:

        webView = (WebView) findViewById(R.id.webview);webView.getSettings().setJavaScriptEnabled(true);webView.getSettings().setDomStorageEnabled(true);// 这个要加上/* 获得 webview url,请注意url单词是product而不是products,products是旧版本的参数,用错地址将不能成功提交 */String url = "https://support.qq.com/product/xxxxx";/* WebView 内嵌 Client 可以在APP内打开网页而不是跳出到浏览器 */WebViewClient webViewClient = new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {super.shouldOverrideUrlLoading(view, url);view.loadUrl(url);return true;}};webView.setWebViewClient(webViewClient);webView.loadUrl(url);

互动界面截图:

可以在这个模块中评论、反馈意见等。

4.结尾

工程用到的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />

APP演示:

郑重声明:本文章纯属原创,版权归属:深圳市中其信息技术有限公司

如不经过本人公司授权,引用、盗用文章及下载资源,后果自负!

点击下载demohttps://download.csdn.net/download/getmsg/85037205?spm=1001.2014.3001.5503

小胖月安卓版,随机选号、叫号功能,互动功能相关推荐

  1. 汽车报户计算机自动选号,机动车可以网上选号了 自编选号、随机选号两种方式随你挑...

    晨刊讯 11月18日,皖北晨刊记者从市公安局交警支队车管所了解到,机动车网上选号系统已经开通,车主可以通过网上用户注册,预选机动车号牌,方便又快捷. 记者了解到,车主登录网址ah.122.gov.cn ...

  2. 双色球随机选号器界面设计及功能实现

    文章目录 1 双色球随机选号器界面设计 1.1 双色球随机选号器界面设计 2 双色球随机选号器代码实现 2.1 项目文件结构 2.2 代码实现 1 双色球随机选号器界面设计 1.1 双色球随机选号器界 ...

  3. python实现双色球_python实现双色球随机选号

    本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下 双色球随机选号实现代码 from random import randrange, randint, sampl ...

  4. Python模拟超级大乐透随机选号

    看了一下体彩超级大乐透规则:前区号码由01-35共三十五个号码组成,后区号码由01-12共十二个号码组成.由此可以使用random模拟体彩超级大乐透随机选号: import random import ...

  5. python双色球选号_python实现双色球随机选号

    本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下 双色球随机选号实现代码 from random import randrange, randint, sampl ...

  6. 用计算机选出彩票号码最少的号码,购买彩票时,很多人往往愿意自己选号,不愿交由电脑随机选号...

    题目 购买彩票时,很多人往往愿意自己选号,不愿交由电脑随机选号.因为他们相信,中奖号码从长远看是随机产生的,但在短期内却有规律,比如前面连续多期出现的数字,这期出现的可能性就要小一些;或者某些数字对于 ...

  7. 用JavaScript制作随机选号器

    这是用JS来实现的随机选号器,从0到99个数中,随机生成一个整数. HTML代码 <!DOCTYPE html> <html><head><meta char ...

  8. 小蜘蛛 七乐彩随机选号器 官网

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  9. 小蜘蛛 七乐彩随机选号器 v1.0 下载

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  10. java模拟电脑体育彩票的随机选号_利用JS来模拟体育彩票选号器

    利用JS来模拟体育彩票选号器_网页代码站(www.webdm.cn) function Quickpick() { var ball for( ball = 0; ball < 5; ball+ ...

最新文章

  1. 区分 欧几里得距离 曼哈坦距离 明考斯基距离
  2. JVM源码分析之FinalReference完全解读
  3. camera理论基础和工作原理【转】
  4. 照片识别出错_AI跨年龄人脸识别技术在跨年龄寻亲的应用简析
  5. 蜡烛图plotly_Python数据分析:基于Plotly的动态可视化绘图简介,目录书摘
  6. Sharding-JDBC数据库_垂直切分_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记012
  7. Learning Cocos2d-x for WP8(4)——中文显示
  8. Java数据类型占用内存最多的_java基础数据类型的内存占用
  9. html如何转换成中文,html中文乱码怎么解决怎么造成如何避免中文乱码
  10. NXP IMX6ULL芯片时钟系统全概况
  11. python爬取qq音乐评论+jieba分词并统计词频+绘制词云并可视化数据
  12. Linux这些年经历了什么?
  13. 地球形状与重力场简述总结
  14. Mastering the game of Go with deep neural networks and tree search翻译
  15. 前端性能优化 —— 前端性能分析
  16. 数据库SQL(二):View(视图)详细
  17. 论文《基于结构光和双目视觉的三维重建系统研究》摘要
  18. Acwing---1205.买不到的数目
  19. SIMATIC WINCC与PLC进行以太网通信的具体组态方法和步骤
  20. 【Python django学习笔记】- django安装和启动

热门文章

  1. Cocos Creator | 导航网格自动寻路:多角色寻路、动态规避障碍物、上/下坡度等
  2. 更改 matlab java 版本_64位 JDK 1.8 调用Matlab 2017b打包的jar
  3. 研发项目wbs分解简单案例_做项目WBS(工作分解结构)
  4. VMware密匙安装教程
  5. 查找主机信息的两个协议:DHCP协议+NBNS协议
  6. Postman 设置环境变量 个人记录
  7. 数学计算机sci,有哪些是数学类SCI
  8. python根据题库答案自动答题_直播答题助手 自动检测出题、搜索答案
  9. 原生Ajax详细获取数据
  10. 输入法半角和全角的快捷转换_华宇拼音输入法 一款完全免费的国产输入法_应用新闻-产经频道-中文科技资讯...