标志在锁定屏幕顶部显示视图

时间:2013-09-10 11:11:56

标签: android android-windowmanager

我正在尝试使用WindowManager.addView(button)向窗口添加视图(例如ImageButton),

什么是布局参数,以便可以在“锁定屏幕”上看到按钮。

提前致谢。

3 个答案:

答案 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;
    }

    }