《手机游戏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
分享到:
相关推荐
在本实例中,单片机需将解码得到的键值通过合适的通信协议传输到LCD,进行数据显示。 实现这一功能需要编写相应的程序,包括初始化LCD,设置通信接口,以及在LCD上定位和打印字符。程序设计可能涉及C语言或者汇编...
在这个实验中,“单片机C语言实例-矩阵式键盘按键值的数码管显示实验”旨在教学生如何利用C语言编程来处理矩阵式键盘输入,并通过数码管将按键的值进行可视化显示。 首先,我们要理解矩阵式键盘。矩阵式键盘是一种...
在扫描过程中,通过当前行线和列线的状态查询这个表格,快速得到按键的键值。 4. **计算法** 文件“4x4矩阵键盘实验(计算法)”可能是采用计算方式来确定按键位置。这种方法不依赖于查找表,而是通过逻辑运算来确定...
- 创建一个ArrayList来存储数据,这里通常使用HashMap来存储键值对。 - 使用ContentResolver查询联系人数据库,得到Cursor对象。 - 遍历Cursor,将联系人的姓名和电话号码添加到ArrayList中。 - 创建一个...
5. **处理按键事件**:一旦识别出按键,就需要处理相应的事件,如读取按键值、触发中断服务程序等。根据实际应用需求,这些事件可能涉及显示、数据处理、控制等功能。 6. **代码实现**:在提供的"矩阵键盘反转扫描....
VC 修改注册表相关键值实例源码,向注册表中添加一个新的键值项目,本范例源码相当简单,容易理解,是新手学习VC 注册表操作的入门实例。本程序还可查询注册表的指定信息,可学习下如何读娶检索、修改、插入注册表...
最后,组合行和列的信息得到按键值,返回给调用者。 逐行扫描法是另一种常用的矩阵键盘扫描方法,它依次扫描每一行,检查列线状态来确定按键。虽然这部分代码没有直接给出逐行扫描的例子,但其思路与线反转法类似,...
2. **路径表达式**:Jaql支持JSON路径,如 `$.*.name`,这可以用于获取所有对象中的"name"属性值。 3. **过滤条件**:Jaql提供了丰富的过滤条件,例如`WHERE`子句可以用于筛选满足特定条件的JSON对象。 4. **聚合...
分布式文件系统经典实例——MapReduce:统计字符数 在大数据处理领域,MapReduce是一种广泛使用的编程模型,由Google提出并应用于大规模数据集的并行计算。这个实例将深入讲解如何利用MapReduce框架来统计文本中的...
在MapReduce操作实例中,TopN问题通常是指找出数据集中出现频率最高的N个元素。在这个实例中,我们看到如何利用Hadoop的MapReduce框架来解决此类问题。以下是具体步骤和涉及的知识点: 1. **Mapper类**:在`...
Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件等场景。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,这使得Redis在处理复杂的数据操作时表现优秀。本教程将详细介绍如何在...
在"基于Java的实例开发源码-OrientDB(基于Java的实例开发源码-文档数据库) 社区版.zip"中,我们获得的是OrientDB社区版的源码,这对于深入理解OrientDB的工作原理以及如何利用Java进行数据库开发是非常宝贵的资源。...
它接收来自所有Mapper和Combiner的键值对,对相同键的值再次求和,得到单词在整个集群中出现的总次数。Reducer的输出是(单词,出现次数:文件名),这形成了完整的倒排索引条目,表示每个单词在哪些文件中出现以及...
在IT领域,尤其是在Windows操作系统编程中,访问和操作注册表是一项常见的任务。注册表是Windows存储系统设置和应用...这个2KB的示例可能就是这样一个小巧但实用的教学实例,帮助初学者理解和实践这些关键的API调用。
1.2 实例2:获得应用程序主窗口的指针 1.3 实例3:获得指定点的窗口 1.4 实例4:最大化和最小化窗口 1.5 实例5:关闭窗口 1.6 实例6:设置窗口的大小和位置 1.7 实例7:居中显示窗口 1.8 实例8:顶层显示窗口 1.9 ...
显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 6.Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作...