小胖月安卓版,随机选号、叫号功能,互动功能
目前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
小胖月安卓版,随机选号、叫号功能,互动功能相关推荐
- 汽车报户计算机自动选号,机动车可以网上选号了 自编选号、随机选号两种方式随你挑...
晨刊讯 11月18日,皖北晨刊记者从市公安局交警支队车管所了解到,机动车网上选号系统已经开通,车主可以通过网上用户注册,预选机动车号牌,方便又快捷. 记者了解到,车主登录网址ah.122.gov.cn ...
- 双色球随机选号器界面设计及功能实现
文章目录 1 双色球随机选号器界面设计 1.1 双色球随机选号器界面设计 2 双色球随机选号器代码实现 2.1 项目文件结构 2.2 代码实现 1 双色球随机选号器界面设计 1.1 双色球随机选号器界 ...
- python实现双色球_python实现双色球随机选号
本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下 双色球随机选号实现代码 from random import randrange, randint, sampl ...
- Python模拟超级大乐透随机选号
看了一下体彩超级大乐透规则:前区号码由01-35共三十五个号码组成,后区号码由01-12共十二个号码组成.由此可以使用random模拟体彩超级大乐透随机选号: import random import ...
- python双色球选号_python实现双色球随机选号
本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下 双色球随机选号实现代码 from random import randrange, randint, sampl ...
- 用计算机选出彩票号码最少的号码,购买彩票时,很多人往往愿意自己选号,不愿交由电脑随机选号...
题目 购买彩票时,很多人往往愿意自己选号,不愿交由电脑随机选号.因为他们相信,中奖号码从长远看是随机产生的,但在短期内却有规律,比如前面连续多期出现的数字,这期出现的可能性就要小一些;或者某些数字对于 ...
- 用JavaScript制作随机选号器
这是用JS来实现的随机选号器,从0到99个数中,随机生成一个整数. HTML代码 <!DOCTYPE html> <html><head><meta char ...
- 小蜘蛛 七乐彩随机选号器 官网
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- 小蜘蛛 七乐彩随机选号器 v1.0 下载
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- java模拟电脑体育彩票的随机选号_利用JS来模拟体育彩票选号器
利用JS来模拟体育彩票选号器_网页代码站(www.webdm.cn) function Quickpick() { var ball for( ball = 0; ball < 5; ball+ ...
最新文章
- 区分 欧几里得距离 曼哈坦距离 明考斯基距离
- JVM源码分析之FinalReference完全解读
- camera理论基础和工作原理【转】
- 照片识别出错_AI跨年龄人脸识别技术在跨年龄寻亲的应用简析
- 蜡烛图plotly_Python数据分析:基于Plotly的动态可视化绘图简介,目录书摘
- Sharding-JDBC数据库_垂直切分_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记012
- Learning Cocos2d-x for WP8(4)——中文显示
- Java数据类型占用内存最多的_java基础数据类型的内存占用
- html如何转换成中文,html中文乱码怎么解决怎么造成如何避免中文乱码
- NXP IMX6ULL芯片时钟系统全概况
- python爬取qq音乐评论+jieba分词并统计词频+绘制词云并可视化数据
- Linux这些年经历了什么?
- 地球形状与重力场简述总结
- Mastering the game of Go with deep neural networks and tree search翻译
- 前端性能优化 —— 前端性能分析
- 数据库SQL(二):View(视图)详细
- 论文《基于结构光和双目视觉的三维重建系统研究》摘要
- Acwing---1205.买不到的数目
- SIMATIC WINCC与PLC进行以太网通信的具体组态方法和步骤
- 【Python django学习笔记】- django安装和启动
热门文章
- Cocos Creator | 导航网格自动寻路:多角色寻路、动态规避障碍物、上/下坡度等
- 更改 matlab java 版本_64位 JDK 1.8 调用Matlab 2017b打包的jar
- 研发项目wbs分解简单案例_做项目WBS(工作分解结构)
- VMware密匙安装教程
- 查找主机信息的两个协议:DHCP协议+NBNS协议
- Postman 设置环境变量 个人记录
- 数学计算机sci,有哪些是数学类SCI
- python根据题库答案自动答题_直播答题助手 自动检测出题、搜索答案
- 原生Ajax详细获取数据
- 输入法半角和全角的快捷转换_华宇拼音输入法 一款完全免费的国产输入法_应用新闻-产经频道-中文科技资讯...