移动GoogleMap的UI控件,同时不移动可见区域

时间:2013-12-05 16:18:17

标签: android android-layout android-fragments android-maps-v2

我想将Android中的Google地图的 mylocation -Button从右上角移动到显示屏的右下角。

android APIs提供此功能来执行此操作。

  

GoogleMap.setPadding(int left,int top,int right,int bottom)

我的问题是

  
      
  • getCameraPosition()将返回填充区域的中心。

  •   
  • Projection.getVisibleRegion()将返回填充区域。

  •   

因此,在用户触摸" myLocation" -Button后,用户位置不再位于地图的中心。

移动UI控件的最佳方法是什么,但保持可见区域未填充?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

GoogleMap.set padding()似乎只有在想要拆分屏幕以便地图只覆盖其中的一部分时才有意义。

所以我所做的就是创建我自己的my-location按钮来响应这样的点击:

<强> Layout.xml

    <Button
        android:id="@+id/myLocation"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:background="@drawable/button_my_position" />

实施onLocationChanged()以便我始终可以访问我当前的位置

@Override
public void onLocationChanged(Location location) {
    this.currentLocation = location;
}

my-location clickListener

myPosition = (Button)getView().findViewById(R.id.myLocation);
myPosition.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        map.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(currentLocation
                .getLatitude(), currentLocation.getLongitude())));
    }
});