屏幕顶部的中心地图。谷歌地图api android
(我使用的是类似于umano应用程序中的滑动布局) 如何将地图居中放置在屏幕顶部。 我想将地图和标记放在屏幕顶部的中心位置。 现在看起来是这样的: 我希望它看起来像这样:屏幕顶部的中心地图。谷歌地图api android,android,maps,Android,Maps,(我使用的是类似于umano应用程序中的滑动布局) 如何将地图居中放置在屏幕顶部。 我想将地图和标记放在屏幕顶部的中心位置。 现在看起来是这样的: 我希望它看起来像这样: 你知道我怎样才能做到这一点吗?谢谢=)您能提供您的XML布局吗?我猜您的地图与父视图匹配,视图的其余部分在地图顶部重叠。解决此问题的一个简单方法是,可以将地图视图和其他视图排列为垂直线性布局。如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayou
你知道我怎样才能做到这一点吗?谢谢=)您能提供您的XML布局吗?我猜您的地图与父视图匹配,视图的其余部分在地图顶部重叠。解决此问题的一个简单方法是,可以将地图视图和其他视图排列为垂直线性布局。如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<CustomMapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:id="@+id/mapView" />
<otherView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</otherView>
</LinearLayout>
我找到了一种不改变地图高度的迂回方法
double metersPerPx=156543.03392*Math.cos(纬度*Math.PI/180)/Math.pow(2,缩放)代码>
纬度是您的当前点纬度,如果您只想以当前点中心为中心,则:
double latitude=googleMap.getCameraPosition().target.latitude代码>
缩放是您当前的地图缩放:
double zoom=googleMap.getCameraPosition().zoom代码>
private int getScreenHeight(){
DisplayMetrics DisplayMetrics=新的DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
返回displayMetrics.heightPixels;
}
int像素=bottomOverlayHeight/2代码>
或者如果你知道这是60%:
int像素=0.6/2*屏幕高度代码>
double meters=metersPerPx*像素代码>
double mLatitude=纬度-米*0.000009代码>
那么就:
CameraPosition CameraPosition=new CameraPosition.Builder().target(new LatLng(mLatitude,longitude)).zoom(zoom.build();
googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))代码>
老实说:这在理论上是正确的,但是对我不起作用。但是如果我把0.000009除以10=0.0000009,它就像一个符咒。我猜第1点可能是另一个单位——每像素10米。但这会阻止地图在滑动布局折叠时填满整个屏幕,不是吗?我想的更多的是一个程序化的解决方案。不管怎样,我会试试你的解决方案,看看是否有效。感谢yaNotice,我正在使用
android:layout\u weight
测量每个视图的高度。因此,当您想用mapview填充整个屏幕时,只需在您的otherView
上设置可见性(View.GONE)即可。很抱歉,这不起作用。它真正的颠簸和触摸停止正常工作shawn_WX您能提供您的xml吗?