2017-07-13 72 views
1

如何在沒有使用onLocationChanged的情況下故意使動畫(移動)相機朝向當前位置(藍點)。Android:谷歌地圖相機動畫

+0

的[Android版谷歌地圖到當前位置,而動畫]可能的複製(https://stackoverflow.com/questions/37692476/android-google-maps-go-to-當前位置 - 無動畫) –

+0

「第一次」是什麼意思?通常情況下,動畫只會在地圖加載時發生一次,或者可能在改變方向後發生。重複的鏈接應該涵蓋你。 –

+0

它不是你建議的問題中提到的。我想在第一次爲相機設置動畫時,但不是每次地圖託管片段到達前景時,當用戶使用底部導航視圖中的標籤瀏覽不同的片段時,都不會每次都有相機動畫。 –

回答

1

這實在是一個註釋和答案之間的柵欄,但我認爲你可以得到的行爲你只需要使用一個活動級別的布爾標誌。最初,這個標誌將被設置爲true。如果屬實,您可以爲您的Google地圖製作動畫。否則,你不會動畫。事情是這樣的:

public class MapsActivity extends FragmentActivity 
    implements OnMapReadyCallback, LocationListener { 

    private GoogleMap googleMap; 
    private boolean firstRender = true; 

    @Override 
    public void onLocationChanged(Location location) { 
     CameraUpdate current = CameraUpdateFactory.newLatLngZoom(coordinates,15); 
     if (firstRender) { 
      googleMap.animateCamera(current); 
      firstRender = false; 
     } 
     else { 
      googleMap.moveCamera(current); 
     } 
    } 
} 
+0

謝謝蒂姆。我已經這樣做了。正如我在上面評論中提到的。 :) –

+0

@SubhanAli是upvote可能嗎? –

+0

根據你所說的可能的出版物而丟失的那些點的情況如何?雖然它不是dublicate –

0

只是烏爾移動相機,而不是animateCamera onMapReady:mGoogleMap.moveCamera(CameraUpdateFactory.newCameraPosition(UR位置))

0
public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     // Add a marker in Sydney, Australia, and move the camera. 
     LatLng chennai = new LatLng(new GPSTracker(activity).getLatitude(), new GPSTracker(activity).getLongitude()); 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chennai, 12)); 
     mMap.addMarker(new MarkerOptions().position(chennai).title("Marker in chennai")); 
    }