解决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);

这又是程序员生涯中遇到的一个挫折,但又一次给解决掉,特此记录一下。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值