Android开发之Thread+Handler示例(打地鼠)

Android异步消息处理之Thread+Handler Android Developers中Keeping Your App Response一文中: No response to an input event (such as key press or screen touch events) within 5 seconds.A BroadcastReceiver hasn't finished executing within 10 se 阅读详情
直接上代码
package com.mingrisoft;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private int i = 0; // 记录其打到了几只地鼠
	private ImageView mouse; // 声明一个ImageView对象
	private Handler handler; // 声明一个Handler对象
	public int[][] position = new int[][] { { 231, 325 }, { 424, 349 },
			{ 521, 256 }, { 543, 296 }, { 719, 245 }, { 832, 292 },
			{ 772, 358 } }; // 创建一个表示地鼠位置的数组

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		mouse = (ImageView) findViewById(R.id.imageView1); // 获取ImageView对象
		mouse.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View v, MotionEvent event) {
				v.setVisibility(View.INVISIBLE); // 设置地鼠不显示
				i++;
				Toast.makeText(MainActivity.this, "打到[ " + i + " ]只地鼠!",
						Toast.LENGTH_SHORT).show(); // 显示消息提示框
				return false;
			}
		});

		handler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
				int index = 0;
				if (msg.what == 0x101) {
					index = msg.arg1; // 获取位置索引值
					mouse.setX(position[index][0]); // 设置X轴位置
					mouse.setY(position[index][1]); // 设置Y轴位置
					mouse.setVisibility(View.VISIBLE); // 设置地鼠显示
				}
				super.handleMessage(msg);
			}

		};
		Thread t = new Thread(new Runnable() {

			@Override
			public void run() {
				int index = 0; // 创建一个记录地鼠位置的索引值
				while (!Thread.currentThread().isInterrupted()) {
					index = new Random().nextInt(position.length); // 产生一个随机数
					Message m = handler.obtainMessage(); // 获取一个Message
					m.what = 0x101; // 设置消息标识
					m.arg1 = index; // 保存地鼠标位置的索引值
					handler.sendMessage(m); // 发送消息

					try {
						Thread.sleep(new Random().nextInt(500) + 500); // 休眠一段时间
					} catch (InterruptedException e) {
						e.printStackTrace();
					}

				}

			}

		});
		t.start(); // 开启线程

	}

}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fl"
    android:background="@drawable/background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/mouse" />
</FrameLayout>


Android打地鼠游戏案例 Android打地鼠游戏案例 这段时间学习Android,然后在老师的指导下做出了一个简单的游戏案例 布局如下: 这个界面用到了LinearLayout,RelativeLayout和TableLayout三个布局,光有一个布局是不能让这个游戏运行起来的所以我要对后台的代码进行梳理。 首先我们要获取到前端代码的ID 我们先把倒计时的功能写上,前面我学习了一个叫CountDownTimer的计时类,它是Android提供的一个倒计时(时间功能)的抽象类 我们先创建一个方法叫MyCountTime然后让它 阅读详情

相关推荐

Android打地鼠小游戏案例

【代码】Android打地鼠小游戏案例。

KAYHO60的博客 3838

Android线程问题解决——Thread+Handler的使用和AsyncTask的使用(外加安卓进度条的代码实现)

文章目录问题引入线程知识  主线程(UI线程)  子线程解决方案  一,使用Thread+Handler处理     1.概念     2.流程图     3.过程概述     4.代码实现  二,用AsyncTask处理     1.概念(异步执行的四个方法)     2.流程图     3.AsyncTask异步任务使用时的注意事项     4.AsyncTask异步任务代码实现进度条总结 问题引入  Android用户界面是与用户交互的接口,对于用户的操作,Android迅速响应用户输入(200ms内

qq_43107850的博客 3381

Android游戏开发实战:打地鼠

打地鼠”游戏的基本规则是:地鼠随机在不同的洞口中出现,玩家需要在限定时间内尽可能多地敲打地鼠以获得分数。游戏将根据敲打速度和准确性给玩家打分。在Android中,可以通过继承View类来创建自定义的渲染组件。例如,创建一个自定义的GameView类来绘制游戏界面。// 初始化游戏逻辑和视图属性@Override// 游戏元素绘制逻辑,如绘制地鼠、背景等在onDraw方法中,我们可以根据游戏逻辑的当前状态来绘制游戏元素。

weixin_35006125的博客 938

android小项目打地鼠(一)

这篇应该昨天发的,但网络出了点小问题,刚弄上来 .....       想复习一下多线程的相关知识,准备顺便写个小项目,就写个打地鼠吧。      项目需求很简单,就是通常意义上的打地鼠。采用迭代开发的方式,即先完成简单的版本,然后再往上加。还没写完,先把今天的整理一下

阿修罗道 7066

Android小游戏-打地鼠

Android课程设计 --- 打地鼠,使用Android Studio编译成功!

Android游戏源码多线程简单实现打地鼠

一个基于安卓的打地鼠游戏源码,地鼠并不是在9个洞里出现,而是特么的全屏随机位置出现,且出现时间极端,这样才真是考验反应能力,游戏有倒计时机制,时间到了给出得分。代码只有两个java文件,是新手练手的上乘项目,感兴趣的可以自己下载研究。

Android小游戏 打地鼠

刚毕业时候写的一个小游戏,今天突然看到了,想起以前的工作,同事,好多事情还历历在目,愿大家都过得开心。 步入正题:因为当时很菜,所以写的很简单,很粗陋,但是勉强能用,先看下效果不会插动图,只能凑合着看了: 游戏实现起来采用了投机取巧的方法,比较简单,功能有:最高分记录,背景音乐播放,游戏;设计思路:通过对imageview切换不同的背景图片达到地鼠出现,地鼠被打,地鼠消失...

xj531的博客 3万+

Android游戏源码多线程简单实现打地鼠.zip

一个基于安卓的打地鼠游戏源码,地鼠并不是在9个洞里出现,而是特么的全屏随机位置出现,且出现时间极端,这样才真是考验反应能力,游戏有倒计时机制,时间到了给出得分。代码只有两个java文件,是新手练手的上乘项目,感兴趣的可以自己下载研究。

Android开发之异步详解(一)Thread+Handler

在Android实际开发工程中经常会进行一些诸如:文件读写、访问网络等耗时的操作,这些耗时的操作是不建议放到UI线程里的。所以我们会新开一个线程,在子线程中进行这些耗时的操作,耗时操作过程中,UI经常需要更新,但Android是不允许在子线程中修改UI的。所以就出现了Thread+Handler机制,Thread通过handler向主线程发送消息、传递数据,来更新UI。下面就介绍如何通过Thread+Handler方式实现异步操作。

fengyuzhengfan的专栏 3721

Android打地鼠游戏实现

Android打地鼠小游戏,eclipse编译器实现,多个游戏模式,分数计算,游戏排行榜

JAVA实验报告18-“打地鼠”游戏程序设计.pdf

JAVA实验报告18-“打地鼠”游戏程序设计.pdf

Android学习 游戏开发之打地鼠(三,打地鼠设计实现)

上篇文章中对开始打地鼠游戏的思路做了简单的介绍,现在来具体的说一说开始打地鼠游戏的实现,先说说布局,用LinearLayout或TableLyout都可以。上面一行是4个TextView下面的地洞是ImageButton。游戏中打中或没打中地鼠都更新会对应按钮背景图。打中地鼠的效果图(图1)和没打中的效果图(图2)。 游戏中需要开启一个线程来控制游戏时间,更新显示剩余时间时,游戏0.5s更新

穷理何须格物的博客 1万+

python提取图片中的文字写入excel文件,并打包为exe可执行文件

python提取图片中的文字写入excel文件,并打包为exe可执行文件

liqiang12689的博客 989

Thread线程和Handler消息处理机制(Android小游戏详解)

讲解部分 做一个打地鼠的小游戏来了解Thread线程和Handler消息处理机制的工作方式。。 类文件需要完成的功能 • 1.记录洞穴的位置。创建一个二维数组,用于保存每个洞穴的位置坐标。 • 2.控制地鼠随机出现 (Thread线程和Handler消息处理机制) • 3.记录打到地鼠的个数并 显示。(简单的toast输出) 1.在Andorid中子线程不允许操作主线程中的组件(简单理解不能改变界面) 2.必须在子线程中更新UI组件,应该怎么办? (通过Handler消息处理机制) ...

indeedes的博客 1437

Arduino DHT11 ESP8266 在OneNet云平台上读取 温湿度

#include "ESP8266.h" #include "dht11.h" #include "SoftwareSerial.h" #define SSID "540ND" #define PASSWORD "" #define HOST_NAME "api.heclouds.com" #define DEVICE_ID "" #define HOST_PORT (80) String APIKey = " "; #define INTER

weixin_45852947的博客 2430

【数字孪生与仿真技术】14:数据驱动+机理模型:工业级混合建模实战(附MATLAB完整代码+案例解析)

摘要 本文针对工业建模中机理模型精度不足和数据驱动模型缺乏物理约束的痛点,提出混合建模技术作为解决方案。文章系统阐述了混合建模的3种主流架构(参数校正型、残差补偿型、组件替换型),结合清华大学催化裂化装置的实际案例,分析混合建模的工业应用价值。同时以连续搅拌反应釜(CSTR)为例,提供MATLAB环境下残差补偿型混合模型的完整实现代码,详细展示从机理模型构建到数据驱动补偿的全流程,并给出工程实践中的应对策略,为工业建模提供可落地的技术方案。 关键词 混合建模、机理模型、数据驱动、工业建模、MATLAB

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 622

Android趣味课程:打地鼠游戏

本篇博客为大家介绍一个简单小游戏的制作:打地鼠游戏的编写。打地鼠,进入页面点击开始游戏后,即可直接进入游戏。此刻,地鼠会不经意的从屏幕中探出一个脑袋,快速消失,企图躲过游戏者的视线。游戏者点击地鼠则获得1分,在限定时间到达后,结束游戏。 功能需求分析: 1.让地鼠图片可随机出现在屏幕的各个角落,通过获取屏幕的尺寸,让地鼠随机出现在屏幕的任何地方。 2.为地鼠设置点击事件,让其可点击,点击后...

u012156341的专栏 3799

【OD统一考试(B卷)】比赛的冠亚季军,Python 解答

比赛的规则是 0 号和 1 号比赛,2 号和 3 号比赛,以此类推,每一轮,相邻的运动员进行比赛,获胜的进入下一轮,实力值大的获胜,实力值相等的情况,id 小的情况下获胜,轮空的直接进入下一轮。第一轮比赛,id 为 0 实力值为 2 的运动员和 id 为 1 实力值为 3 的运动员比赛, 1 号胜出进入下一轮争夺冠亚军,id 为 2 的运动员和 id 为 3 的运动员比赛,3 号胜出进入下一轮争夺冠亚军;2 号与 0 号,比赛进行季军的争夺,2 号实力值为 4,0 号实力值 2,故 2 号胜出,得季军。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

Android开发Thread+Handler演示样本(打地鼠)

直接在代码 package com.mingrisoft; import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.MotionEve...

weixin_33858485的博客 181

AI 大模型接口太零散?自建私有模型管理平台统一整合,管理使用超方便!(支持飞牛nas、群晖nas等服务器快速部署)

面对多种 AI 大模型接口难统一、管理繁琐的问题🤯,本文分享一款超实用开源网关工具⚡,可聚合各大模型、自动转接口、支持可视化管理,Docker 一键部署,大幅降低开发与维护成本🚀

XiaoqiangClub的博客 266

备赛电赛学习硬件篇(二):电源板电路设计

1、输入接口要准备各种接口,如2p端子,锂电池接口,typec等,提供多种电源供电方案2、输出接口3、自由拓展。

m0_61022809的博客 3215

打地鼠小游戏

下载连接:https://download.csdn.net/download/qq_35690700/10555369 1.运行截图 2.目录结构 3.代码示例 package com.hitmouse.controller; import com.hitmouse.dao.DBHelper; import com.hitmouse.service.MusicServic...

qq_35690700的博客 3674

1、工作流介绍

工作流起源于办公自动化,是对软件中业务流程的抽象。通过工作流将各个任务有序组织起来形成一个完整的业务闭环。比如:请假审批流程,网上购物流程,银行贷款流程;!

leyoliu的博客 5109

【安卓笔记】Handler+Thread使用浅析

之前介绍了AsyncTask,今天介绍Handler+Thread的使用方式。 使用Handler+Thread也可以执行一个异步的任务,并可以通过handler更新UI。 注:这篇文章只讲API,关于Handler,Looper,Message,MessageQueue的原理我们下一篇讨论。 使用handler+Thread的典型方式是这样的: 必须重写Handler的h

RowandJJ 2791

C#上位机与西门子PLC全链路通信实战教程:数据采集+SQL存储+数据库报表查询+报警历史完整实现

在工业自动化领域,西门子PLC(S7-200Smart/1200/1500)凭借稳定的性能、强大的功能、完善的生态,稳居工业控制器的主流地位;而凭借开发效率高、界面美观、兼容性强、数据库操作便捷的优势,成为工业上位机开发的首选编程语言。二者的组合,是目前制造业、自动化产线、智能仓储、暖通自控等场景的绝对主流方案,也是工业上位机工程师必须吃透的核心技术栈。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1865

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Android开发之AsyncTask机制及使用细节
下一篇: Android开发之搜索框自动提示细节MatrixCursor学习
minimicall
博客等级 码龄18年 407粉丝 174原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值