8

我想知道,是否有可能获取操作栏菜单项的屏幕坐标?

正如我想创建一个介绍屏幕,绘制一个指向所需操作栏菜单项的箭头,以便用户知道从哪里开始。

在此处输入图像描述

4

2 回答 2

7

我是这样做的:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId().equals(R.id.my_menu_item)) {
        View menuView = findViewById(R.id.menu_item_search);
        int[] location = new int[2];
        menuView.getLocationOnScreen(location);
        int menuViewX = location[0];
        int menuViewY = location[1];
    }
}
于 2016-02-09T13:20:50.260 回答
1

目前,除了您自己的自定义操作布局或操作视图外,没有记录和支持的方法来执行此操作。没有 API 可以检索操作栏的普通内容(主页提示、标题、常规项目)。

如另一个答案中所述,ShowcaseView 可能为此做了一些未记录/不受支持的事情,例如遍历View层次结构以获取这些小部件。这是有风险的,因为未来的 Android 版本,或制造商/ROM 修改器对 Android 的更改可能会打破这种逻辑。

于 2013-05-19T08:15:15.290 回答