我试图将罗盘按钮的位置从左上角更改为左下角,但是不能。

如我所见,有很多建议创建一个自定义按钮并禁用本机按钮,但没有一个完整而正常的示例。

如何在Android map 上添加自定义指南针按钮?

最佳答案

您可以更改内置指南针的位置。试试这个代码:

ViewGroup parent = (ViewGroup) mapView.findViewById(Integer.parseInt("1")).getParent();
        View compassButton = parent.getChildAt(4);
        /* now set position compass */
        RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) compassButton.getLayoutParams();
        rlp.addRule(RelativeLayout.ALIGN_PARENT_END, 0);
        rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        rlp.addRule(RelativeLayout.ALIGN_PARENT_START);
        rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
        Resources r = context.getResources();
        float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, r.getDisplayMetrics());
        rlp.setMargins(0, (int)px,0, 0); // 160 la truc y , 30 la  truc x
        px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, r.getDisplayMetrics());
        rlp.setMarginEnd((int)px);

        compassButton.setLayoutParams(rlp);

只需使用RelativeLayout参数并将其设置在所需位置即可

10-05 19:14