and*_*per 16 android android-navigation-bar
不知何故,应用程序" Navbar Apps "允许自定义导航栏的背景,即使它不在前景中,甚至不仅仅是简单的颜色.
我认为只有当应用程序位于前台时才能改变它的颜色......
我在一些自定义的roms上看到它,甚至在播放音乐时都有特效,但我不知道即使没有自定义ROM(或root)也可以自定义它.
这是一个黑客?它们如何改变,而不仅仅是导航栏的颜色,甚至为它设置背景图像(包括动态的电池状态)?
是否也可以更改其他系统栏,例如通知栏?
它如何检查哪个应用程序位于前台(可能需要根据当前应用程序决定何时更改颜色)?它是一个新的API吗?我认为用于获取前台活动的API已被弃用,现在无论如何都没有帮助......
基本设置非常简单.将它变成一个应用程序将需要一些工作.
您需要使用辅助功能 API以及WindowManager#addView(...)
.
这是一个黑客?
我不能说我喜欢这个想法,但它并不是一个黑客.
它们如何改变,而不仅仅是导航栏的颜色,甚至为它设置背景图像(包括动态的电池状态)?
由于我们添加了View
(或ViewGroup
),我们有更多的控制权.
是否也可以更改其他系统栏,例如通知栏?
我会调查一下.
它如何检查哪个应用程序位于前台(可能需要根据当前应用程序决定何时更改颜色)?
您可以使用辅助功能API来监听Window
级别更改(AccessibilityEvent
) - 这将为您提供packageName.随意使用它.
我会给你一些指示:
清单:
SYSTEM_ALERT_WINDOW
<service />
Accessibilityservice
onServiceConnected()
TYPE_SYSTEM_OVERLAY
用WindowManager#addView(...)
onAccessibilityEvent(AccessibilityEvent)
; packageName将在这里提供结果
这里托管了一个示例项目:链接.
归档时间: |
|
查看次数: |
1576 次 |
最近记录: |