我正在尝试使用WindowManager.addView(button)
向窗口添加视图(例如ImageButton),
什么是布局参数,以便可以在“锁定屏幕”上看到按钮。
提前致谢。
答案 0 :(得分:2)
您可以尝试在WindowManager.LayoutParams.TYPE_SYSTEM_ERROR
构造函数中添加WindowManager.LayoutParams
类型,如下所示:
WindowManager.LayoutParams params=new WindowManager.LayoutParams();
params.type=WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
上述行将使视图显示在锁定屏幕上,您可以在其中捕获触摸事件,单击事件和许多其他事件;但是,您可以使用下面提到的标志作为不可触摸的视图。
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
注意:根据Android Developers上述两个标志在API级别26中已弃用,因此您可以使用标志TYPE_APPLICATION_OVERLAY作为替代。
答案 1 :(得分:1)
您必须使用透明背景制作活动,并在顶部显示您要在锁定屏幕上显示的视图。现在,当手机唤醒时,请调用该活动。 注意:您必须提供将开始您的活动的服务。您必须将广播接收器注册到该服务。
答案 2 :(得分:0)
public class CrackService extends Service
{
CrackView renderView;
LayoutParams params;
WindowManager wm;
@Override
public void onCreate()
{
params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(renderView, params);
}
@Override
public IBinder onBind(Intent intent)
{
// TODO Auto-generated method stub
return null;
}
}