기본 콘텐츠로 건너뛰기

[Android] Fragment에 Google Maps 추가하기

먼저 포스팅에서 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가 핵심 부분으로, 다음과 같다.

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

댓글

댓글 쓰기