如何在锁屏上获得透明的android活动?

时间:2014-08-25 09:27:06

标签: android xml android-theme

我希望我的活动显示在锁屏上(工作正常)。但我想让这项活动透明化。
我尝试了两种方法都不允许我的活动在锁屏上显示。

方法1

android:theme="@android:style/Theme.Translucent.NoTitleBar"


方法2

<style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>


两者都不允许在锁屏上显示活动。

你知道有什么方法吗?

2 个答案:

答案 0 :(得分:0)

尝试在您的活动中设置以下代码。我没有尝试过,它可能会有效。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

答案 1 :(得分:0)

这是因为您将windowIsFloating定义为true。如果宽度或高度被修改,或者设置为浮动,则活动不会在锁屏前显示。

您应该将windowIsFloating设置为false,将windowBackground设置为透明,如果您仍然喜欢对话框效果,请创建一个dialogfragment,并在活动的onCreate中显示该对话框。当然,从活动中删除ActionBar:

<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>