android - 应用填充后异常 View 尺寸太小。 (使用 newLatLngBounds(LatLngBounds,int))

标签 android google-maps

我正在开发一个安卓应用。在此应用程序中,我在 fragment 中显示了一个 MapView。当我在 Activity 中包含以下代码时,我的应用程序崩溃了。

 LatLngBounds.Builder builder = new LatLngBounds.Builder();
 builder.include(pickupLatLng);
 builder.include(destinationLatLng);
 LatLngBounds bounds = builder.build();

 int width = getResources().getDisplayMetrics().widthPixels;
 int padding = (int) (width*0.2);

 CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
 mMap.animateCamera(cameraUpdate);
 mMap.addMarker(new MarkerOptions().position(pickupLatLng).title("pickup location").icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_pickup)));
 mMap.addMarker(new MarkerOptions().position(destinationLatLng).title("destination"));

它在这一行显示错误:

mMap.animateCamera(cameraUpdate);

最佳答案

当 padding 大于 height 时就会出现问题。考虑屏幕高度:

int width = getResources().getDisplayMetrics().widthPixels;
int height = getResources().getDisplayMetrics().heightPixels;
int padding = (int) (Math.min(width, height)*0.2);

关于android - 应用填充后异常 View 尺寸太小。 (使用 newLatLngBounds(LatLngBounds,int)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993033/

相关文章:

android - 透明自适应图标背景

android - kotlin - Realm 和包裹

Android:最好将哪些数据存储给授权用户一次并在下次启动应用程序时记住?

java - 如何在 Java、Android 上对我的 Web 服务进行 POST 查询?

android - 如何根据计算的角度在 map 上显示方向

android - 无法执行 dex : Multiple dex files define Lcom/abc/abcsdk/Manifest$permission;

ios - Swift Google Map Marker Tap 事件对我不起作用

javascript - 当前位置可拖动标记

java - 在标记中显示信息

java - 谷歌地图 : Create marker from different class