【问题标题】:How to get Transparent android activity over the lockscreen?如何在锁屏上获得透明的 android 活动?
【发布时间】:2014-08-25 09:27:06
【问题描述】:

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

方法一

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


方法二

<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>


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

你知道什么方法吗?

【问题讨论】:

  • 显示在锁屏上的活动对你有用吗?
  • activity的UI,根布局你必须将背景设置为透明。
  • 嗨。你是怎么解决这个问题的?请更新答案

标签: android xml android-theme


【解决方案1】:

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

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

【讨论】:

  • 我已经这样做了,但如果我不添加主题,这些都可以正常工作
  • getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
  • 你是否在AndroidManifest中设置了“”。
【解决方案2】:

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

您应该将 windowIsFloating 设置为 false,将 windowBackground 设置为透明,如果您仍然想要对话框效果,请创建一个对话框片段,并在您的活动的 onCreate 中显示它。当然,从 Activity 中移除 ActionBar:

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

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 2011-04-07
    • 2019-07-30
    相关资源
    最近更新 更多