《手机游戏50例》第二个实例为将按键值显示在屏幕上,下面给出MainView.java的代码
package com.wjh.demon_2;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.inputmethodservice.Keyboard.Key;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
public class MainView extends View implements Runnable{
private boolean m_bRunning = false;
public int m_nKeyCode;
public String m_nKeyAction="";
private Handler handler = null;
public MainView(Context context) {
super(context);
// TODO Auto-generated constructor stub
setFocusable(true);
start();
}
public void start()
{
m_bRunning = true;
//更新
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
MainView.this.invalidate();
}
};
Thread thread = new Thread(this);
thread.start();
}
//线程启用方法
public void run()
{
while(m_bRunning)
{
//重回图形
handler.sendEmptyMessage(0);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void stop()
{
m_bRunning = false;
}
//画图方法
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//设置背景颜色
Paint backGround = new Paint();
backGround.setColor(Color.BLACK);
//清屏
canvas.drawRect(0, 0, getWidth(), getHeight(), backGround);
//设置画笔颜色
Paint cPaint = new Paint();
cPaint.setColor(Color.BLUE);
cPaint.setTextSize(20);
//输出按键的设备码
canvas.drawText("KeyCode:", 10, 20,cPaint);
canvas.drawText(""+m_nKeyCode,120,20,cPaint);
//输出按键的设备名
canvas.drawText("KeyAction:", 10, 80, cPaint);
canvas.drawText(m_nKeyAction, 120, 80, cPaint);
}
//获得按键输入
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
m_nKeyCode = keyCode;
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_UP:
m_nKeyAction = "UP";
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
m_nKeyAction = "DOWN";
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
m_nKeyAction = "LEFT";
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
m_nKeyAction = "RIGHT";
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
m_nKeyAction = "CENTER";
break;
default:
m_nKeyAction="NONE";
break;
}
return super.onKeyDown(keyCode, event);
}
}
代码包:
Demon_2.rar
分享到:
相关推荐
VC 修改注册表相关键值实例源码,向注册表中添加一个新的键值项目,本范例源码相当简单,容易理解,是新手学习VC 注册表操作的入门实例。本程序还可查询注册表的指定信息,可学习下如何读娶检索、修改、插入注册表...
最后,组合行和列的信息得到按键值,返回给调用者。 逐行扫描法是另一种常用的矩阵键盘扫描方法,它依次扫描每一行,检查列线状态来确定按键。虽然这部分代码没有直接给出逐行扫描的例子,但其思路与线反转法类似,...
分布式文件系统经典实例——MapReduce:统计字符数 在大数据处理领域,MapReduce是一种广泛使用的编程模型,由Google提出并应用于大规模数据集的并行计算。这个实例将深入讲解如何利用MapReduce框架来统计文本中的...
在MapReduce操作实例中,TopN问题通常是指找出数据集中出现频率最高的N个元素。在这个实例中,我们看到如何利用Hadoop的MapReduce框架来解决此类问题。以下是具体步骤和涉及的知识点: 1. **Mapper类**:在`...
Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件等场景。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,这使得Redis在处理复杂的数据操作时表现优秀。本教程将详细介绍如何在...
它接收来自所有Mapper和Combiner的键值对,对相同键的值再次求和,得到单词在整个集群中出现的总次数。Reducer的输出是(单词,出现次数:文件名),这形成了完整的倒排索引条目,表示每个单词在哪些文件中出现以及...
在IT领域,尤其是在Windows操作系统编程中,访问和操作注册表是一项常见的任务。注册表是Windows存储系统设置和应用...这个2KB的示例可能就是这样一个小巧但实用的教学实例,帮助初学者理解和实践这些关键的API调用。
显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 6.Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作...
本文将深入探讨Struts2中的标签,特别是与表单相关的标签,并通过实例来解释它们的使用方法。 首先,让我们关注 `<s:form>` 标签。这是Struts2中的核心表单标签,用于创建HTML表单。默认情况下,它以表格布局呈现,...
这个"struts2 i18n国际化实例"应该包含了实现上述所有步骤的具体代码示例,对于初学者来说,是一个很好的学习起点,可以帮助理解Struts2如何处理国际化,以及如何在实际项目中应用这些概念。同时,遇到问题可以与...
1.1 第一个实例程序 1 1.1.1 start.exe 1 1.1.2 Windows API 2 1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 安装Microsoft Platform SDK 4 ...
2. **Future接口**:这个接口表示一个异步计算的结果,可以用来检查计算是否完成、获取结果或者取消计算。backport库提供了Future的实现,使得旧版本的Java也能支持异步编程模型。 3. **CyclicBarrier和Phaser**:...
系统上电后,屏幕显示初始数值0123,用户可以依次输入数字、运算符,再输入第二个数字,最后按等号键得到结果。如果需要再次计算,可以通过清除键或复位键进行初始化。 软件设计方面,遵循了模块化程序设计原则,将...
- **观察者模式**:实现对象之间的依赖关系,当一个对象的状态改变时,所有依赖它的对象都会得到通知。 通过这些实例,初学者不仅可以学习到Java语法,还能了解到如何组织和设计代码,理解面向对象编程的思想,...
262 实例181 修改文件及目录的名字 264 6.4 文件目录 265 实例182 获得临时文件目录 265 实例183 获取应用程序所在目录 266 实例184 得到系统当前目录 266 实例185 在程序中改变当前...
使用Armink-struct2json转换后,可以得到如下JSON字符串: ```json { "id": 0, "name": "", "score": [0.0, 0.0, 0.0, 0.0, 0.0] } ``` 五、实战应用 1. 数据存储与恢复:在嵌入式设备中,可以将运行状态保存...
1.2 实例2:获得应用程序主窗口的指针 1.3 实例3:获得指定点的窗口 1.4 实例4:最大化和最小化窗口 1.5 实例5:关闭窗口 1.6 实例6:设置窗口的大小和位置 1.7 实例7:居中显示窗口 1.8 实例8:顶层显示窗口 1.9 ...