ICS中的TYPE_SYSTEM_OVERLAY

Edw*_*iek 12 android layoutparams android-windowmanager android-4.0-ice-cream-sandwich

在Honeycomb中,我能够使用TYPE_SYSTEM_OVERLAY创建系统覆盖,并使用FLAG_WATCH_OUTSIDE_TOUCH接收触摸.

现在ICS改变了一些东西.我仍然可以创建系统覆盖,但我无法接触.

现在,我能够使用TYPE_SYSTEM_ALERT创建相同的内容并获取触摸,但它只是捕获touchevents,而不是像Honeycomb那样传递它们.

有任何想法吗?

亲切的问候

jaw*_*are 24

要创建叠加视图,在设置LayoutParams时 请勿将类型设置为TYPE_SYSTEM_OVERLAY.

而是将其设置为TYPE_PHONE.

使用以下标志:

FLAG_NOT_TOUCH_MODAL

FLAG_WATCH_OUTSIDE_TOUCH

FLAG_NOT_TOUCH_MODAL <<我发现这个非常重要.没有它,重点是叠加和软键(主页,菜单等)按下不传递给下面的活动.

  • FYI jawsware在这里有一个适用于ICS的完整示例应用程序:http://www.jawsware.mobi/code_OverlayView/ (4认同)
  • 无法在4.2.X上捕获其中的任何视频上的点击事件,但在较低版本的Android上效果很好.有什么建议? (3认同)

Com*_*are 7

你描述的一切都是真的.它可能是为了加强安全性,因为前者的行为是攻击攻击的来源.我最近写了一篇关于这个变化的博客文章.

有任何想法吗?

不要使用它们中的任何一个.