2017-12-05 7 views
1

私はgoogle-maps-utils(マーカークラスタリングのみ)を使用しています。コードは読み取り専用です。1つの外部ライブラリからコードをインポートおよび編集できますか? (google-maps-utilsなど)

dependencies { 
    compile 'com.google.maps.android:android-maps-utils:0.5+' 
} 

私は私が私のアプリにこのコードをインポートし、これらの行を編集できますClusterManager.java

/** 
    * 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(); 
    } 
  1. に3行をコメントにしたいですか?
  2. はいの場合、どうすればいいですか? (ステップバイステップ)

私はモジュールをインポートしようとしていますが、何か間違っています。

+2

は、ClusterManagerのを拡張するクラスを作ります@メソッドをオーバーライドし、元のコードをコピーして貼り付け、不要な行を削除します。このクラスが高レベルのクラスによってライブラリ内で使用されている場合、私はあなたを助けることができないところでかなり困難になることがあります – Pali

+0

ありがとう!できます。正解を設定する答えを書いてください。 – Itapox

答えて

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 ... 
関連する問題