2013-12-19 41 views
0

我见过很多应用程序,其中用户触摸屏幕并且应用程序显示该点的叠加十字线视图。我希望知道这是如何工作的,以及如何覆盖它,例如在手机的开发人员选项中,它覆盖每个屏幕。谢谢。如何覆盖十字线

回答

1

如果您想覆盖所有内容,而不仅仅是您的应用程序,请从服务调用类似此代码。

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
    LayoutInflater layoutInflater = (LayoutInflater) this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    mView = layoutInflater.inflate(R.layout.whatToShow, null); 

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.WRAP_CONTENT, 
      WindowManager.LayoutParams.WRAP_CONTENT, 
      WindowManager.LayoutParams.TYPE_PHONE, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
      PixelFormat.TRANSLUCENT); 
    params.gravity = Gravity.LEFT; 
    params.x = 0; 
    params.y = 0; 
    windowManager.addView(mView, params); 

,并删除它

((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(mView); 

它需要在清单下面一行:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 

还检查了本教程 http://www.piwai.info/chatheads-basics/

+0

非常感谢! – NEXTGENINTL

1

您可以将inflate作为View的布局并将add view设置为根视图。

inflater = LayoutInflater.from(getBaseContext()); 
View view = inflater.inflate(R.layout.overlay, null); 
LayoutParams layoutParamsControl= new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
this.addContentView(view, layoutParamsControl); 
+0

请再具体些,谢谢。 – NEXTGENINTL

+0

曾经尝试过搜索吗?看下面我会编辑 – marshallino16

+0

谢谢。这很有帮助。 – NEXTGENINTL