我可以从一个外部库导入和编辑代码吗? (例如 google-maps-utils)
Posted
技术标签:
【中文标题】我可以从一个外部库导入和编辑代码吗? (例如 google-maps-utils)【英文标题】:Can i import and edit code from one external library ? (e.g. google-maps-utils) 【发布时间】:2018-05-18 13:43:51 【问题描述】:我正在使用 google-maps-utils(仅标记聚类)并且代码是只读的。
dependencies
compile 'com.google.maps.android:android-maps-utils:0.5+'
我想在 ClusterManager.java
中评论 3 行 /**
* Might re-cluster.
*/
@Override
public void onCameraIdle()
if (mRenderer instanceof GoogleMap.OnCameraIdleListener)
((GoogleMap.OnCameraIdleListener) mRenderer).onCameraIdle();
// Don't re-compute clusters if the map has just been panned/tilted/rotated.
CameraPosition position = mMap.getCameraPosition();
// if (mPreviousCameraPosition != null && mPreviousCameraPosition.zoom == position.zoom)
// return;
//
mPreviousCameraPosition = mMap.getCameraPosition();
cluster();
-
我可以将此代码导入我的应用程序并编辑这些行吗?
如果是,我该怎么做? (一步一步)
我正在尝试导入模块,但我做错了。
【问题讨论】:
创建一个扩展 ClusterManager 的类,@Override 方法,复制粘贴原始代码并删除不需要的行。如果这个类被更高级别的类在库中使用,事情会变得非常困难,我无法帮助你 谢谢!有用。写答案以设置正确答案。 【参考方案1】:如果这是一个您将直接使用的高级类,您可以简单地扩展该类并覆盖该方法:
public class MyClusterManager<T extends ClusterItem> extends ClusterManager<T>
@Override
public void onCameraIdle()
if (mRenderer instanceof GoogleMap.OnCameraIdleListener)
((GoogleMap.OnCameraIdleListener) mRenderer).onCameraIdle();
CameraPosition position = mMap.getCameraPosition();
mPreviousCameraPosition = mMap.getCameraPosition();
cluster();
然后:
ClusterManager<MyClusterItem> clusterManager = new MyClusterManager<MyClusterItem>();
// do something with your own clusterManager ...
【讨论】:
以上是关于我可以从一个外部库导入和编辑代码吗? (例如 google-maps-utils)的主要内容,如果未能解决你的问题,请参考以下文章