当前位置:  编程技术>移动开发
本页文章导读:
    ▪JAVAME学习札记(5)        JAVAME学习笔记(5) 如果需要,开发者可以随时调用getKeyStates方法来查询键的状态。getKeyStates()获取游戏的物理键状态。返回值的每个比特位都表示设备上的一个特定的键。如果一个键对应的.........
    ▪ Zxing审查        Zxing调研 简介      最近的Widget项目用到需要用摄像头来处理条形码,章师兄推荐了ZXing这个开源的项目,于是做一简单的调研。ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目.........
    ▪ JAVAME学习札记(6)       JAVAME学习笔记(6) 用于渲染Sprite的原始帧由一个单独的Image对象提供,此Image可以是可变的,也可以是不可变的。如果使用多帧,图像将按照指定的宽度和高度被切割成一系列相同大小的帧.........

[1]JAVAME学习札记(5)
    来源: 互联网  发布时间: 2014-02-18
JAVAME学习笔记(5)
如果需要,开发者可以随时调用getKeyStates方法来查询键的状态。getKeyStates()获取游戏的物理键状态。返回值的每个比特位都表示设备上的一个特定的键。如果一个键对应的比特位的值为1,表示该键当前被按下,或者自上次调用此方法后到现在,至少被按下过一次。如果一个键对应的比特位的值为0,表示该键当前未被按下,并且自上次调用此方法后到现在从未被按下过。这种“闭锁行为(latching behavior)”保证一个快速的按键和释放总是能够在游戏循环中被捕获,不管循环有多慢。下面是获取游戏按键的示例:



      // 获得键的状态并存储

      int keyState = getKeyStates();

      if ((keyState & LEFT_KEY) != 0) {

          positionX--;

      }

      else if ((keyState & RIGHT_KEY) != 0) {

          positionX++;

      }



调用这个方法的副作用是不能及时清除过期的状态。在一个getKeyStates调用后如果紧接着另一个调用,键的当前状态将取决于系统是否已经清除了上一次调用后的结果。

某些设备可能无法直接访问键盘硬件,因此,这个方法可能是通过监视键的按下和释放事件来实现的,这会导致getKeyStates可能滞后于当前物理键的状态,因为时延取决于每个设备的性能。某些设备还可能没有探测多个键同时按下的能力。



请注意,除非GameCanvas当前可见(通过调用Displayable.isShown()方法),否则此方法返回0。一旦GameCanvas变为可见,将初始化所有键为未按下状态(0)。


    
[2] Zxing审查
    来源: 互联网  发布时间: 2014-02-18
Zxing调研
简介
      最近的Widget项目用到需要用摄像头来处理条形码,章师兄推荐了ZXing这个开源的项目,于是做一简单的调研。
ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。
当前,ZXing主要支持以下条形码:
•UPC-A and UPC-E
•EAN-8 and EAN-13
•Code 39
•Code 128
•QR Code
•Data Matrix ('alpha' quality)
•ITF
       首先,在http://code.google.com/p/zxing/上下载到ZXing的应用程序包,解压下载到的程序包后,我们可以看到整个应用程序分为一些组件。如下:
1.core: 核心包,是整个应用的主要组件组成部分。
2.javame: 为JavaME来定制的客户端工具。
3.javase: 为PC端定制的客户端工具。
4.android: 为Android端定制的客户端工具。
5.androidtest: Android测试应用程序,里面有在其它程序中使用此应用的示例。
基本测试
     ZXing程序的运行需要我们使用Ant去打包编译之后才可。在这里,我主要调研了在PC端,在WTK上及android上的运行。
1.PC端使用Java应用程序调试
     首先,Build一下core与javase两个包,如下:

      编译完毕后,我们来运行程序,如下:

 cd core 
 ant 
 cd ../javase 
 ant

  

  

cd .. java -cp javase/javase.jar;core/core.jar com.google.zxing.client.j2se.GUIRunner

    运行后会弹出一个文件选择器,我们选取事先准备好的一张条形码图后,可以看出,对于给出的条形码图,程序将其读出到图片下的一个标签中。
2.在NOKIA N82上程序调试
    首先,我们得保证我们的机器已经安装了WTK。之后,我们必须下载Proguard (http://proguard.sourceforge.net/downloads.html)到本地,将其中的proguard.jar拷备到WTK的bin目录下,修改zxing根目录下的build.properties文件中的wtk-home属性就可以了(注意,对于windows环境中使用,目录分隔符为两个斜杠)之后可以开始编译:

   

 cd core
 ant
 cd ../javame
 ant


    在编译之后,会在zxing的javame目录下生成一个BarcodeReader.jar与BarcodeReader.jad文件。我们直接双击jad文件就可以在WTK模拟器中使用了。
3.在Android模拟器上程序调试
    首先,我们得保证我们机器有有现成的Andorid SDK。同时保证在WTK的bin目录下存在proguard.jar,并在build.properties中配置了wtk-home与android-home属性,之后开始编译程序:


 cd core
 ant clean build-no-debug
 cd ../android
 ant


   程序编译完成之后,就会在android下的bin目录中生成一个BarcodeScanner-debug.apk程序,我们可以使用Android模拟器为我们提供的adb工具来完成测试。执行:

  

adb install bin/BarcodeReader.apk


就会打开Andorid的模拟器并将我们的应用程序安装到Android中,
1 楼 zhouqing318 2010-07-28  
虽然只是官方文档的翻译版本,不过我通过这篇文档找到了zxing,谢谢了哈
2 楼 liggway 2010-09-02  
不知道楼主有没有测过Data Matrix ,我使用的android扫描不出来,qr正常
3 楼 新入职 2011-03-15  
受用啦

    
[3] JAVAME学习札记(6)
    来源: 互联网  发布时间: 2014-02-18
JAVAME学习笔记(6)
用于渲染Sprite的原始帧由一个单独的Image对象提供,此Image可以是可变的,也可以是不可变的。如果使用多帧,图像将按照指定的宽度和高度被切割成一系列相同大小的帧。正如下图所示,同一序列的帧可以以不同的排列存储,这取决于游戏开发者是否方便开发。


每一帧都被赋予一个唯一的索引号。左上角的帧被赋予索引号0。余下的帧按照行的顺序索引号依次递增(索引号从第一行开始,接着是第二行,以此类推)。getRawFrameCount()方法返回所有原始帧的总数。



6.3.2   帧序列
Sprite的帧序列定义了帧以什么样的顺序来显示。缺省的帧序列就是所有可用帧的顺序排列,因此,帧序列和对应的帧的索引号是一致的。这表示缺省的帧序列的长度和所有原始帧的总数是相等的。例如,如果一个Sprite有4帧,缺省的帧序列为{0, 1, 2, 3}。







可以使用setFrameSequence(int[] sequence)来为Sprite设置帧序列。当调用此方法时,将会复制sequence数组;因此,随后对参数sequence数组进行的任何更改均不会影响Sprite的帧序列。传入null将使Sprite的帧序列重置为缺省值。



开发者必须在帧序列中手动切换当前帧。可以调用setFrame(int),prevFrame()或者nextFrame()方法来完成。注意,这些方法是针对帧序列操作,而不是对帧的索引操作。如果使用缺省的帧序列,那么帧序列的索引和帧的索引是可互换的。

如果愿意,可以为Sprite定义任意的帧序列。帧序列必须至少包含一个元素,并且每个元素都必须是一个有效的帧的索引号。通过定义新的帧序列,开发者可以方便地以任意想要的顺序来显示Sprite的帧;帧可以重复,忽略,或者以相反的顺序显示,等等。



例如,下图显示了一个特定的序列如何被用于动画显示一个蚊子。帧序列被设计为蚊子振动翅膀3次,然后在下次循环前暂停一会儿。



每次调用nextFrame()方法就会更新显示,动画效果如下:





要创建一个静态的Sprite,可以调用public Sprite(Image image),通过提供的图像创建一个新的Sprite。如果要创建动态的Sprite,就必须使用public Sprite(Image image,int frameWidth, int frameHeight)。



帧的大小由frameWidth和frameHeight指定,所有帧的大小必须相等。可以在图像中水平、竖直或以方格形式排列。源图像的宽度必须是帧宽度的整数倍,高度必须是帧高度的整数倍。如果image的宽度或高度不是frameWidth或frameHeight的整数倍,将会抛出IllegalArgumentException异常。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
c/c++ iis7站长之家
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3