代码之家  ›  专栏  ›  技术社区  ›  Marcin Wróblewski

在PopupWindow中的showAtLocation()中指定的X/Y偏移在哪个维度中?

  •  0
  • Marcin Wróblewski  · 技术社区  · 6 年前

    我不确定x和y参数是否应该是密度独立像素的像素。

    我试图从android的文档中获取这些信息,但没有答案: showAtLocation docs

    在深入挖掘之后,我只有更多的问题:

    这个 WindowManager.LayoutParams 文档包含有关x和y的更多说明: WindowManager.LayoutParams documantation 但仍然不是我要找的那个。

    1 回复  |  直到 6 年前
        1
  •  1
  •   ReDLaNN    6 年前

    布局参数中的x/y使用像素作为其单位。你可以看看这个 How to show PopupWindow at special location? 有关如何操作的详细信息。

    额外:您还可以使用

    float density = context.getResources().getDisplayMetrics().density;
    float px = someDpValue * density;
    float dp = somePxValue / density;
    

    额外2:你也可以得到屏幕的宽度/高度

    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();    
    float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
    float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
    
    推荐文章