`
一口三个汉堡
  • 浏览: 112918 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

实例2---获得按键值

阅读更多

《手机游戏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
0
1
分享到:
评论
2 楼 一口三个汉堡 2011-05-31  
zhang247124629 写道
适合新手..

因为我就是新手
1 楼 zhang247124629 2011-05-31  
适合新手..

相关推荐

    VC 修改注册表相关键值实例源码.rar

    VC 修改注册表相关键值实例源码,向注册表中添加一个新的键值项目,本范例源码相当简单,容易理解,是新手学习VC 注册表操作的入门实例。本程序还可查询注册表的指定信息,可学习下如何读娶检索、修改、插入注册表...

    矩阵键盘扫描的C实例整理-经典

    最后,组合行和列的信息得到按键值,返回给调用者。 逐行扫描法是另一种常用的矩阵键盘扫描方法,它依次扫描每一行,检查列线状态来确定按键。虽然这部分代码没有直接给出逐行扫描的例子,但其思路与线反转法类似,...

    分布式文件系统经典实例-mapreduce-统计字符数

    分布式文件系统经典实例——MapReduce:统计字符数 在大数据处理领域,MapReduce是一种广泛使用的编程模型,由Google提出并应用于大规模数据集的并行计算。这个实例将深入讲解如何利用MapReduce框架来统计文本中的...

    MapReduce操作实例-TopN.pdf

    在MapReduce操作实例中,TopN问题通常是指找出数据集中出现频率最高的N个元素。在这个实例中,我们看到如何利用Hadoop的MapReduce框架来解决此类问题。以下是具体步骤和涉及的知识点: 1. **Mapper类**:在`...

    redis在windows 和单机安装和多实例安装.rar --操作带视频

    Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件等场景。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,这使得Redis在处理复杂的数据操作时表现优秀。本教程将详细介绍如何在...

    MapReduce操作实例-倒排索引.pdf

    它接收来自所有Mapper和Combiner的键值对,对相同键的值再次求和,得到单词在整个集群中出现的总次数。Reducer的输出是(单词,出现次数:文件名),这形成了完整的倒排索引条目,表示每个单词在哪些文件中出现以及...

    演示如何获得注册表下某个键下的所有键值(2KB)...

    在IT领域,尤其是在Windows操作系统编程中,访问和操作注册表是一项常见的任务。注册表是Windows存储系统设置和应用...这个2KB的示例可能就是这样一个小巧但实用的教学实例,帮助初学者理解和实践这些关键的API调用。

    如何编写批处理文件批处理文件批处理文件

    显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 6.Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作...

    Struts2中的标签介绍及应用实例

    本文将深入探讨Struts2中的标签,特别是与表单相关的标签,并通过实例来解释它们的使用方法。 首先,让我们关注 `<s:form>` 标签。这是Struts2中的核心表单标签,用于创建HTML表单。默认情况下,它以表格布局呈现,...

    struts2 i18n国际化实例

    这个"struts2 i18n国际化实例"应该包含了实现上述所有步骤的具体代码示例,对于初学者来说,是一个很好的学习起点,可以帮助理解Struts2如何处理国际化,以及如何在实际项目中应用这些概念。同时,遇到问题可以与...

    精通Windows.API-函数、接口、编程实例.pdf

    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 ...

    backport-util-concurrent_java_backport_

    2. **Future接口**:这个接口表示一个异步计算的结果,可以用来检查计算是否完成、获取结果或者取消计算。backport库提供了Future的实现,使得旧版本的Java也能支持异步编程模型。 3. **CyclicBarrier和Phaser**:...

    补充--单片机应用系统设计实例.ppt

    系统上电后,屏幕显示初始数值0123,用户可以依次输入数字、运算符,再输入第二个数字,最后按等号键得到结果。如果需要再次计算,可以通过清除键或复位键进行初始化。 软件设计方面,遵循了模块化程序设计原则,将...

    100个Java经典编程实例源代码

    - **观察者模式**:实现对象之间的依赖关系,当一个对象的状态改变时,所有依赖它的对象都会得到通知。 通过这些实例,初学者不仅可以学习到Java语法,还能了解到如何组织和设计代码,理解面向对象编程的思想,...

    C#.net_经典编程例子400个

    262 实例181 修改文件及目录的名字 264 6.4 文件目录 265 实例182 获得临时文件目录 265 实例183 获取应用程序所在目录 266 实例184 得到系统当前目录 266 实例185 在程序中改变当前...

    Armink-struct2json-master.zip

    使用Armink-struct2json转换后,可以得到如下JSON字符串: ```json { "id": 0, "name": "", "score": [0.0, 0.0, 0.0, 0.0, 0.0] } ``` 五、实战应用 1. 数据存储与恢复:在嵌入式设备中,可以将运行状态保存...

    VISUAL C++实效编程280例

    1.2 实例2:获得应用程序主窗口的指针 1.3 实例3:获得指定点的窗口 1.4 实例4:最大化和最小化窗口 1.5 实例5:关闭窗口 1.6 实例6:设置窗口的大小和位置 1.7 实例7:居中显示窗口 1.8 实例8:顶层显示窗口 1.9 ...

Global site tag (gtag.js) - Google Analytics