悬浮窗坐标和屏幕坐标的关系

我的设备:LG G7 Thinq ,分辨率3120x1440,刘海屏


注意到获取悬浮窗位置的时候,如果把悬浮窗移动到屏幕最左上角,获取到的y坐标会小于0,但是很明显点击时使用的屏幕坐标没有负值。
悬浮窗的坐标系和屏幕坐标系是否有所不同?如果有所不同,有没有转换的方法?

透明,这是圆角所致,并非从负数开始

目前想实现获取屏幕坐标的功能,现在的实现方式是让用户拖动一个悬浮窗到指定位置,之后获取这个悬浮窗的坐标。
由于这个特性,获取的坐标不太准确,有什么解决的办法吗?
使用场景是在3d引擎中,因此不能使用控件模式。

实现代码:


function getPosInteractive(promptText) {
    let confirmed = false;
    //提示和确认按钮的框
    let confirmWindow = floaty.rawWindow(
        <frame gravity="left|top">
            <vertical bg="#7fffff7f">
                <text id="promptText" text="" textSize="14sp" />
                <button id="confirmBtn" style="Widget.AppCompat.Button.Colored" text="确定" />
            </vertical>
        </frame>
    );
    confirmWindow.setTouchable(true);
    ui.run(function(){
        confirmWindow.promptText.setText("请将另一个悬浮窗口左上端移到" + promptText + ",之后点击确认来获取坐标");
        confirmWindow.confirmBtn.click(()=>{
            confirmed = true;
        });
    });

    //只有一个箭头的框,用来获取坐标
    let selectorWindow = floaty.window(
        <frame gravity="left|top">
            <img src="data:image/jpg;base64, ...."/>
        </frame>);
    selectorWindow.setAdjustEnabled(true);
    while(!confirmed) sleep(50);
    confirmWindow.close();
    selectorWindow.close();
    return {
        "x": selectorWindow.getX(),
        "y": selectorWindow.getY()
    };
}