如何根据android中的anchroview定位Tooltip箭头。

时间:2018-01-04 16:27:33

标签: android

enter image description here

我正在使用弹出窗口来推导工具提示但面临一些问题,根据屏幕上锚点视图的位置动态放置箭头。

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是在屏幕上找到锚定视图的位置,并相应地设置弹出布局的x,y坐标。要查找真实世界坐标,可以使用以下代码:

    public static Rect locateView(View v) {
    int[] loc_int = new int[2];
    v.getLocationOnScreen(loc_int);

    Rect location = new Rect();
    location.left = loc_int[0];
    location.top = loc_int[1];
    location.right = location.left + v.getWidth();
    location.bottom = location.top + v.getHeight() + v.getPaddingTop() + v.getBottom();
    return location;
}

将锚定视图传递给函数,稍后,弹出窗口的setX,SetY属性。 类似的东西:

 popUpLayout.setX(locateView(findViewById(R.id.anchor_view)).left);

第二个解决方案,可能就是你可以把你的锚定视图包起来并弹出一个线性/相对布局并使用可见性进行播放。