Java Code Examples for android.view.WindowManager.LayoutParams#FLAG_NOT_TOUCH_MODAL

The following examples show how to use android.view.WindowManager.LayoutParams#FLAG_NOT_TOUCH_MODAL . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WindowManage.java    From QSVideoPlayer with Apache License 2.0 8 votes vote down vote up
public WindowManager.LayoutParams creatParams(int type, FloatParams floatParams) {
    //系统浮窗不能超出边界,更新xy
    int ww = (w - floatParams.w) / 2;
    int hh = (h - floatParams.h) / 2;
    if (Math.abs(floatParams.x) > ww)
        floatParams.x = floatParams.x > 0 ? ww : -ww;
    if (Math.abs(floatParams.y) > hh)
        floatParams.y = floatParams.y > 0 ? hh : -hh;

    LayoutParams smallWindowParams = new LayoutParams();
    smallWindowParams.type = type;
    smallWindowParams.format = PixelFormat.RGBA_8888;
    smallWindowParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
            | LayoutParams.FLAG_NOT_FOCUSABLE;
    //smallWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
    smallWindowParams.width = floatParams.w;
    smallWindowParams.height = floatParams.h;
    smallWindowParams.x = floatParams.x;
    smallWindowParams.y = floatParams.y;
    return smallWindowParams;
}
 
Example 2
Source File: HandView.java    From BalloonPerformer with Apache License 2.0 6 votes vote down vote up
/**
 * attach handview to {@link WindowManager}
 *
 * @param y
 */
public void attachToWindow(int x, int y) {
    if (this.getParent() != null) {
        return;
    }
    mLp = new WindowManager.LayoutParams();
    mLp.type = LayoutParams.TYPE_SYSTEM_ALERT;
    mLp.format = PixelFormat.RGBA_8888;
    mLp.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
            | LayoutParams.FLAG_NOT_FOCUSABLE;
    mLp.gravity = Gravity.LEFT | Gravity.TOP;
    mLp.width = WindowManager.LayoutParams.WRAP_CONTENT;
    mLp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    mLp.x = x;
    mOriY = y;
    mLp.y = mOriY;
    mWindowManager.addView(this, mLp);
}
 
Example 3
Source File: StatusBarVolumePanel.java    From Noyze with Apache License 2.0 6 votes vote down vote up
@Override public WindowManager.LayoutParams getWindowLayoutParams() {
	int flags = (LayoutParams.FLAG_NOT_FOCUSABLE		|
                    LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH  |
                    LayoutParams.FLAG_NOT_TOUCH_MODAL      |
                    LayoutParams.FLAG_LAYOUT_INSET_DECOR   |
			     LayoutParams.FLAG_LAYOUT_IN_SCREEN		|
			     LayoutParams.FLAG_SHOW_WHEN_LOCKED	    );
	LayoutParams WPARAMS = new WindowManager.LayoutParams(
		LayoutParams.MATCH_PARENT, mStatusBarHeight, 0, 0,
		LayoutParams.TYPE_SYSTEM_ERROR, flags, PixelFormat.TRANSLUCENT);
	WPARAMS.windowAnimations = android.R.style.Animation_Dialog;
	WPARAMS.packageName = getContext().getPackageName();
	WPARAMS.setTitle(TAG);
       WPARAMS.rotationAnimation = LayoutParams.ROTATION_ANIMATION_JUMPCUT;
	WPARAMS.gravity = (Gravity.FILL_HORIZONTAL | Gravity.TOP);
	WPARAMS.screenBrightness = WPARAMS.buttonBrightness = LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
	return WPARAMS;
}
 
Example 4
Source File: TestActivity.java    From android-art-res with Apache License 2.0 6 votes vote down vote up
public void onButtonClick(View v) {
    if (v == mCreateWindowButton) {
        mFloatingButton = new Button(this);
        mFloatingButton.setText("click me");
        mLayoutParams = new WindowManager.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0, 0,
                PixelFormat.TRANSPARENT);
        mLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
                | LayoutParams.FLAG_NOT_FOCUSABLE
                | LayoutParams.FLAG_SHOW_WHEN_LOCKED;
        mLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;
        mLayoutParams.gravity = Gravity.LEFT | Gravity.TOP;
        mLayoutParams.x = 100;
        mLayoutParams.y = 300;
        mFloatingButton.setOnTouchListener(this);
        mWindowManager.addView(mFloatingButton, mLayoutParams);
    }
}
 
Example 5
Source File: StatusBarVolumePanel.java    From Noyze with Apache License 2.0 6 votes vote down vote up
@Override public WindowManager.LayoutParams getWindowLayoutParams() {
	int flags = (LayoutParams.FLAG_NOT_FOCUSABLE		|
                    LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH  |
                    LayoutParams.FLAG_NOT_TOUCH_MODAL      |
                    LayoutParams.FLAG_LAYOUT_INSET_DECOR   |
			     LayoutParams.FLAG_LAYOUT_IN_SCREEN		|
			     LayoutParams.FLAG_SHOW_WHEN_LOCKED	    );
	LayoutParams WPARAMS = new WindowManager.LayoutParams(
		LayoutParams.MATCH_PARENT, mStatusBarHeight, 0, 0,
		LayoutParams.TYPE_SYSTEM_ERROR, flags, PixelFormat.TRANSLUCENT);
	WPARAMS.windowAnimations = android.R.style.Animation_Dialog;
	WPARAMS.packageName = getContext().getPackageName();
	WPARAMS.setTitle(TAG);
       WPARAMS.rotationAnimation = LayoutParams.ROTATION_ANIMATION_JUMPCUT;
	WPARAMS.gravity = (Gravity.FILL_HORIZONTAL | Gravity.TOP);
	WPARAMS.screenBrightness = WPARAMS.buttonBrightness = LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
	return WPARAMS;
}
 
Example 6
Source File: Takt.java    From styT with Apache License 2.0 5 votes vote down vote up
private Program prepare(Application application) {
    metronome = new Metronome();
    params = new LayoutParams();
    params.width = LayoutParams.WRAP_CONTENT;
    params.height = LayoutParams.WRAP_CONTENT;
    // if (isOverlayApiDeprecated()) {
    // params.type = LayoutParams.TYPE_APPLICATION_OVERLAY;
    // } else {
    params.type = LayoutParams.TYPE_TOAST;
    //}
    params.flags = LayoutParams.FLAG_KEEP_SCREEN_ON | LayoutParams.FLAG_NOT_FOCUSABLE
            | LayoutParams.FLAG_NOT_TOUCH_MODAL;
    params.format = PixelFormat.TRANSLUCENT;
    params.gravity = Seat.BOTTOM_RIGHT.getGravity();
    params.x = 10;

    app = application;
    wm = WindowManager.class.cast(application.getSystemService(Context.WINDOW_SERVICE));
    LayoutInflater inflater = LayoutInflater.from(app);
    stageView = inflater.inflate(R.layout.stage, new RelativeLayout(app));
    fpsText = stageView.findViewById(R.id.takt_fps);

    listener(new Audience() {
        @Override
        public void heartbeat(double fps) {
            if (fpsText != null) {
                fpsText.setText(decimal.format(fps));
            }
        }
    });

    return this;
}
 
Example 7
Source File: Takt.java    From stynico with MIT License 5 votes vote down vote up
private Program prepare(Application application) {
    metronome = new Metronome();
    params = new LayoutParams();
    params.width = LayoutParams.WRAP_CONTENT;
    params.height = LayoutParams.WRAP_CONTENT;
    // if (isOverlayApiDeprecated()) {
    // params.type = LayoutParams.TYPE_APPLICATION_OVERLAY;
    // } else {
    params.type = LayoutParams.TYPE_TOAST;
    //}
    params.flags = LayoutParams.FLAG_KEEP_SCREEN_ON | LayoutParams.FLAG_NOT_FOCUSABLE
            | LayoutParams.FLAG_NOT_TOUCH_MODAL;
    params.format = PixelFormat.TRANSLUCENT;
    params.gravity = Seat.BOTTOM_RIGHT.getGravity();
    params.x = 10;

    app = application;
    wm = WindowManager.class.cast(application.getSystemService(Context.WINDOW_SERVICE));
    LayoutInflater inflater = LayoutInflater.from(app);
    stageView = inflater.inflate(R.layout.stage, new RelativeLayout(app));
    fpsText = (TextView) stageView.findViewById(R.id.takt_fps);

    listener(new Audience() {
        @Override
        public void heartbeat(double fps) {
            if (fpsText != null) {
                fpsText.setText(decimal.format(fps));
            }
        }
    });

    return this;
}
 
Example 8
Source File: Takt.java    From Takt with Apache License 2.0 5 votes vote down vote up
private Program prepare(Application application) {
  metronome = new Metronome();
  params = new LayoutParams();
  params.width = LayoutParams.WRAP_CONTENT;
  params.height = LayoutParams.WRAP_CONTENT;
  application.registerActivityLifecycleCallbacks(new LifecycleListener(this));

  if (isOverlayApiDeprecated()) {
    params.type = LayoutParams.TYPE_APPLICATION_OVERLAY;
  } else {
    params.type = LayoutParams.TYPE_TOAST;
  }
  params.flags = LayoutParams.FLAG_KEEP_SCREEN_ON | LayoutParams.FLAG_NOT_FOCUSABLE
      | LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_TOUCHABLE;
  params.format = PixelFormat.TRANSLUCENT;
  params.gravity = Seat.BOTTOM_RIGHT.getGravity();
  params.x = 10;

  app = application;
  wm = WindowManager.class.cast(application.getSystemService(Context.WINDOW_SERVICE));
  LayoutInflater inflater = LayoutInflater.from(app);
  stageView = inflater.inflate(R.layout.stage, new RelativeLayout(app));
  fpsText = stageView.findViewById(R.id.takt_fps);

  listener(new Audience() {
    @Override public void heartbeat(double fps) {
      if (fpsText != null) {
        fpsText.setText(decimal.format(fps));
      }
    }
  });

  return this;
}
 
Example 9
Source File: FunFloatingTool.java    From RePlugin-GameSdk with Apache License 2.0 4 votes vote down vote up
/**
 * 要显示在窗口最前面的方法
 * 
 * @param context
 *            调用对象Context getApplicationContext()
 * @param window
 *            调用对象 Window getWindow()
 * @param floatingViewObj
 *            要显示的浮动对象 View
 */
public static void show(Context context, View floatingViewObj) {

	mFloatingViewObj = floatingViewObj;

	view_obj = mFloatingViewObj;
	Rect frame = new Rect();
	// 这一句是关键,让其在top 层显示
	// getWindow()
	// window.getDecorView().getWindowVisibleDisplayFrame(frame);
	TOOL_BAR_HIGH = frame.top;

	wm = (WindowManager) context// getApplicationContext()
			.getSystemService(Context.WINDOW_SERVICE);

	params.type = WindowManager.LayoutParams.TYPE_APPLICATION;// 2;
	// params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
	// | WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
	// params.type = 2003;//WindowManager.LayoutParams.TYPE_PHONE;
	params.format = -2;
	params.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
			| LayoutParams.FLAG_NOT_FOCUSABLE;

	// 设置悬浮窗口长宽数据
	params.width = WindowManager.LayoutParams.WRAP_CONTENT;
	params.height = HWUtils.dip2px(context, 60);
	// 设定透明度
	params.alpha = 80;
	// 设定内部文字对齐方式
	params.gravity = Gravity.LEFT | Gravity.TOP;

	screenWidth = wm.getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px)
	screenHeight = wm.getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800px)
	// 以屏幕左上角为原点,设置x、y初始值ֵ
	// params.x = (int) (screenWidth - params.width);
	String postions = HWPreferences.getData(context, "HW_postions");
	String mY = HWPreferences.getData(context, "HW_currentY");
	if (null != postions && null != mY && 0 < mY.length()) {
		if (Boolean.valueOf(postions)) {
			params.x = params.width;
		} else {
			params.x = (int) (screenWidth - params.width);
		}
		isLeftPosition = Boolean.valueOf(postions);
		params.y = Integer.valueOf(mY) + 60;

	} else {
		params.x = params.width;
		params.y = ((screenHeight - params.height) / 2) + 60;

	}
	// params.y = (int) y;
	// tv = new MyTextView(TopFrame.this);

	wm.addView(floatingViewObj, params);
	wm.updateViewLayout(mFloatingViewObj, params);
	isShow = true;
	mIsShow = true; // 定时器检测浮标是否已经显示出来的标志

}