我遇到以下问题-我在WindowManager中放一个 View
我希望它可以从屏幕外向屏幕中间翻译动画。

不幸的是,无论我做什么, View 都停留在轴上。

这是代码:

    view = (FrameLayout) LayoutInflater.from(this).inflate(
            R.layout.poke, null);

    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            300, 400, WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);

    params.verticalMargin = -10f;
    params.gravity = Gravity.TOP;

    windowManager.addView(view, params);

如您所见,我尝试使用边距(将其减掉以使其上升)。

顺便说一句-我知道在dimen.xml中放入数字而不是dp是很丑的。它只是一个测试代码。

最佳答案

我只是遇到了同样的问题,实际的标志是:

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

因此,您的代码应如下所示:
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        300, 400, WindowManager.LayoutParams.TYPE_PHONE,
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
        PixelFormat.TRANSLUCENT);

关于android - 在WindowManager中显示可能来自 "out of screen"的 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24458039/

10-13 03:00