2013-12-19 2 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 расположение в виде вида и 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

Смежные вопросы