3

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

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

提前致谢。

4

3 回答 3

2

您可以尝试WindowManager.LayoutParams.TYPE_SYSTEM_ERRORWindowManager.LayoutParams构造函数中添加类型,如下所示:

WindowManager.LayoutParams params=new WindowManager.LayoutParams();
params.type=WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;

上述行将使视图出现在锁定屏幕上,您可以在其中捕获触摸事件、点击事件和许多其他事件;但是,您可以将下面提到的标志用于不可触摸的视图。

WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY

注意:根据Android 开发人员,上述两个标志在 API 级别 26 中已弃用,因此您可以使用标志 TYPE_APPLICATION_OVERLAY 作为替代。

于 2015-06-05T19:47:55.523 回答
1

您必须创建一个具有透明背景的活动,并在顶部显示您想在锁定屏幕上显示的视图。现在,当您的手机唤醒时调用该活动。 注意:您必须提供一项服务才能开始您的活动。您必须向该服务注册广播接收器。

于 2013-09-10T11:31:57.683 回答
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;
    }

    }
于 2013-09-12T18:52:51.690 回答