android - 锁屏前特定高度的 Activity

标签 android android-layout lockscreen keyguard

我想在锁屏前显示一个 Activity 。我在 onCreate 方法中尝试使用此代码:

super.onCreate(savedInstanceState);
Window window = getWindow();

window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);        
setContentView(R.layout.test);

这对于在整个屏幕上显示的 Activity 非常有用,但我想构建一个高度仅为 200 像素的 Activity。我以为我可以用这段代码匹配它:

super.onCreate(savedInstanceState);
Window window = getWindow();

LayoutParams layout = new WindowManager.LayoutParams();
layout.copyFrom(window.getAttributes());
layout.height = 200;

window.setAttributes(layout);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);

setContentView(R.layout.test);

但是在锁屏前,Activity 是不可见的。如果我解锁手机, Activity 将直接显示。知道为什么以及如何解决这个问题吗?

编辑: 我认为这与窗口 float FLAG 有关。如果设置了这个标志(我认为当我改变大小时它会) Activity 不会显示在锁屏上。但这只是一个假设。有解决此问题的想法或解决方法吗?

最佳答案

我在设计我的音乐播放器时也有类似的要求。我最终为我的锁屏小部件做的是:

  1. 为我的锁屏小部件设置了透明背景。
  2. 在布局底部添加了一个按钮“单击以退出锁定屏幕”。
  3. 为了给人一种方框的感觉,在按钮周围添加了一个白色边界。

你可以从 Google Play 下载我的音乐播放器“Fusion Music Player”看看

关于android - 锁屏前特定高度的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157339/

相关文章:

react-native - react native : How to detect device lock/unlock event?

java - 如何在 android 中解决此错误 - java.lang.RuntimeException : Only one Looper may be created per thread

android - 在另一个 : React Native 之上叠加或添加 View

java - 在 MainActivity 之外使用 arrayAdapter

java - Android - 将屏幕转回关闭模式

android - 如何在android中禁用锁屏?

java - 按下警报对话框按钮始终返回 0 值

android - TableRow图片背景android

Android布局: left item in horizontal LinearLayout forces right justified text to jumble

android - 找不到与给定名称 : attr 'windowBackground' in android 匹配的资源