/
BorisK
/
Map
Обзор
Документация
Войти
/
BorisK
/
Map
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AndroidWearMap/Wearable/src/main/java/com/example/androidwearmap/MainActivity.java
149 строк
6 KB
Mark McDonald
Merge branch 'master'
24 сен 2015, 20:40
24 сен 2015, 20:40
a9dde5b
Код
Авторство
О чём код?
/* * Copyright (C) 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.androidwearmap; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import android.app.Activity; import android.os.Bundle; import android.support.wearable.activity.WearableActivity; import android.support.wearable.view.DismissOverlayView; import android.view.View; import android.view.WindowInsets; import android.widget.FrameLayout; /** * Sample that shows how to set up a basic Google Map on Android Wear. */ public class MainActivity extends WearableActivity implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener { private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522); /** * Overlay that shows a short help text when first launched. It also provides an option to * exit the app. */ private DismissOverlayView mDismissOverlay; /** * The map. It is initialized when the map has been fully loaded and is ready to be used. * * @see #onMapReady(com.google.android.gms.maps.GoogleMap) */ private GoogleMap mMap; private MapFragment mMapFragment; public void onCreate(Bundle savedState) { super.onCreate(savedState); // Set the layout. It only contains a SupportMapFragment and a DismissOverlay. setContentView(R.layout.activity_main); // Enable ambient support, so the map remains visible in simplified, low-color display // when the user is no longer actively using the app but the app is still visible on the // watch face. setAmbientEnabled(); // Retrieve the containers for the root of the layout and the map. Margins will need to be // set on them to account for the system window insets. final FrameLayout topFrameLayout = (FrameLayout) findViewById(R.id.root_container); final FrameLayout mapFrameLayout = (FrameLayout) findViewById(R.id.map_container); // Set the system view insets on the containers when they become available. topFrameLayout.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { // Call through to super implementation and apply insets insets = topFrameLayout.onApplyWindowInsets(insets); FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mapFrameLayout.getLayoutParams(); // Add Wearable insets to FrameLayout container holding map as margins params.setMargins( insets.getSystemWindowInsetLeft(), insets.getSystemWindowInsetTop(), insets.getSystemWindowInsetRight(), insets.getSystemWindowInsetBottom()); mapFrameLayout.setLayoutParams(params); return insets; } }); // Obtain the DismissOverlayView and display the intro help text. mDismissOverlay = (DismissOverlayView) findViewById(R.id.dismiss_overlay); mDismissOverlay.setIntroText(R.string.intro_text); mDismissOverlay.showIntroIfNecessary(); // Obtain the MapFragment and set the async listener to be notified when the map is ready. mMapFragment = (MapFragment) getFragmentManager() .findFragmentById(R.id.map); mMapFragment.getMapAsync(this); } /** * Starts ambient mode on the map. * The API swaps to a non-interactive and low-color rendering of the map when the user is no * longer actively using the app. */ @Override public void onEnterAmbient(Bundle ambientDetails) { super.onEnterAmbient(ambientDetails); mMapFragment.onEnterAmbient(ambientDetails); } /** * Exits ambient mode on the map. * The API swaps to the normal rendering of the map when the user starts actively using the app. */ @Override public void onExitAmbient() { super.onExitAmbient(); mMapFragment.onExitAmbient(); } @Override public void onMapReady(GoogleMap googleMap) { // Map is ready to be used. mMap = googleMap; // Set the long click listener as a way to exit the map. mMap.setOnMapLongClickListener(this); // Add a marker with a title that is shown in its info window. mMap.addMarker(new MarkerOptions().position(SYDNEY) .title("Sydney Opera House")); // Move the camera to show the marker. mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10)); } @Override public void onMapLongClick(LatLng latLng) { // Display the dismiss overlay with a button to exit this activity. mDismissOverlay.show(); } }