`
一口三个汉堡
  • 浏览: 115447 次
  • 性别: 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  
适合新手..

相关推荐

    51单片机实例178-遥控键值解码-12864LCD显示

    在本实例中,单片机需将解码得到的键值通过合适的通信协议传输到LCD,进行数据显示。 实现这一功能需要编写相应的程序,包括初始化LCD,设置通信接口,以及在LCD上定位和打印字符。程序设计可能涉及C语言或者汇编...

    单片机C语言实例-矩阵式键盘按键值的数码管显示实验.zip

    在这个实验中,“单片机C语言实例-矩阵式键盘按键值的数码管显示实验”旨在教学生如何利用C语言编程来处理矩阵式键盘输入,并通过数码管将按键的值进行可视化显示。 首先,我们要理解矩阵式键盘。矩阵式键盘是一种...

    单片机C语言实例--371-矩阵键盘.zip

    在扫描过程中,通过当前行线和列线的状态查询这个表格,快速得到按键的键值。 4. **计算法** 文件“4x4矩阵键盘实验(计算法)”可能是采用计算方式来确定按键位置。这种方法不依赖于查找表,而是通过逻辑运算来确定...

    一,android开发经典实例系列-----ListView、GridView.doc

    - 创建一个ArrayList来存储数据,这里通常使用HashMap来存储键值对。 - 使用ContentResolver查询联系人数据库,得到Cursor对象。 - 遍历Cursor,将联系人的姓名和电话号码添加到ArrayList中。 - 创建一个...

    单片机C语言实例--63-矩阵键盘反转扫描.zip

    5. **处理按键事件**:一旦识别出按键,就需要处理相应的事件,如读取按键值、触发中断服务程序等。根据实际应用需求,这些事件可能涉及显示、数据处理、控制等功能。 6. **代码实现**:在提供的"矩阵键盘反转扫描....

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

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

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

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

    基于Java的实例源码-JSON查询语言 Jaql.zip

    2. **路径表达式**:Jaql支持JSON路径,如 `$.*.name`,这可以用于获取所有对象中的"name"属性值。 3. **过滤条件**:Jaql提供了丰富的过滤条件,例如`WHERE`子句可以用于筛选满足特定条件的JSON对象。 4. **聚合...

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

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

    MapReduce操作实例-TopN.pdf

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

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

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

    基于Java的实例开发源码-OrientDB(基于Java的实例开发源码-文档数据库) 社区版.zip

    在"基于Java的实例开发源码-OrientDB(基于Java的实例开发源码-文档数据库) 社区版.zip"中,我们获得的是OrientDB社区版的源码,这对于深入理解OrientDB的工作原理以及如何利用Java进行数据库开发是非常宝贵的资源。...

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics