`
makej2me
  • 浏览: 25758 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决SurfaceView不能获取按键和触摸事件的问题

阅读更多
  
    这周有需求需要开发一个Aandroid平台的开发引擎,目的是可以降低从J2ME项目移植到Android平台的移植时间,最佳的耗时最快可以达到1到2天,甚至是几个小时,相当于只是在J2ME增加一个移植机型。
    OK,狂编代码,设计的功能都完成后,发生杯具了,测试程序居然不能获取按键事件和触摸事件。出现了可恶的提示:
    No window to dispatch pointer action 0
    No window to dispatch pointer action 1

    视图是使用SufaceView的,代码结构和官方例子有点不同,为的是把Android的差异性隐藏起来,程序员面对的只是类似J2ME的程序框架,究竟啥原因了?
    接下来的是,查资料,问高手,狂修改结构,结果没高手可以帮我解决问题,资料也找不到头绪。OK,静下心来,由0开始,重新编写一个最简单的例子,这个例子是可以获取全部事件的,再慢慢修改结构,结果加上多个功能代码后,丢失事件又出现了,噢,MY GOD!真是令人疯狂的世界。
    再比较比较比较。。。
    法克。。。
    终于定位到问题所在。。。
    原来。。。。是这样
    问题出在设置屏幕全屏的那行代码,这行代码是在网上找来的:
    this.getWindow().setFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR,
                WindowManager.LayoutParams.TYPE_STATUS_BAR);
    但这个代码是起作用的,但它屏蔽了事件。。。
    再上网找找设置屏幕全屏的代码,找到,但变成这样:
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
   
    这又是程序员生涯中遇到的一个挫折,但又一次给解决掉,特此记录一下。。。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics