먼저 포스팅에서 Android Studio에서 제공하는 기본적인 Google Maps를 실행해보았다.
[Android] Simple Google Maps 추가하기 (Android API v2)
개발자는 해야할 것은 Google Maps Server 접근할 수 있는 API Key를 얻는 것 뿐이었다.
그리고 Android Studio에서 마우스 몇번이면 Google Maps가 나의 App에서 실행되는 것을 볼 수 있었다.
이번에는 Android Studio에서 자동으로 만들어 주는 Activity가 아닌
Fragment에 Google Maps를 올려보려고 한다.
배경:
- 기본적으로 MainActivity가 있으며, Fragment들을 만들어 이를 바꿔주면서 구동되는 앱이다.
- Fragment 중 하나는 Google Maps를 담고 있어야 한다.
이전에 작업했던 것과 크게 다르지 않다.
Android Studio에서 자동으로 생성된 FragmentActivity 코드를 Fragment로 그대로 Copy & Paste 해주기만 해도 제대로 동작한다.
Fragment의 onCreateView와 onMapReady가 핵심 부분으로, 다음과 같다.
[Android] Simple Google Maps 추가하기 (Android API v2)
개발자는 해야할 것은 Google Maps Server 접근할 수 있는 API Key를 얻는 것 뿐이었다.
그리고 Android Studio에서 마우스 몇번이면 Google Maps가 나의 App에서 실행되는 것을 볼 수 있었다.
이번에는 Android Studio에서 자동으로 만들어 주는 Activity가 아닌
Fragment에 Google Maps를 올려보려고 한다.
배경:
- 기본적으로 MainActivity가 있으며, Fragment들을 만들어 이를 바꿔주면서 구동되는 앱이다.
- Fragment 중 하나는 Google Maps를 담고 있어야 한다.
이전에 작업했던 것과 크게 다르지 않다.
Android Studio에서 자동으로 생성된 FragmentActivity 코드를 Fragment로 그대로 Copy & Paste 해주기만 해도 제대로 동작한다.
Fragment의 onCreateView와 onMapReady가 핵심 부분으로, 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_collection_map, container, false);
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
return view;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng latLng = new LatLng(LAT, LNG);
MarkerOptions marker = new MarkerOptions().position(latLng);
mMap.addMarker(marker);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13));
}
| cs |
위의 Fragment를 호출하기 위해 MainActivity에서는 아래와 같이
Fragment 전환시켜준다.
1
2
|
MapFragment mapFragment = new MapFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, mapFragment).commit();
| cs |
작성자가 댓글을 삭제했습니다.
답글삭제작성자가 댓글을 삭제했습니다.
답글삭제