Android 에서 GoogleMap에 화면의 중심에 아이콘을 넣는 방법은 무엇인가요?

조회수 3379회

현재 모바일 커뮤니티 어플리케이션을 제작하고 있습니다.

지도에서 가운데를 표시하고 싶은데요.

마커로 표시하는게 아니라 이미지 아이콘 처럼 따로 분류를 하고싶습니다.

이미지

사진의 화면같이 맵을 드래그해도 계속 가운데 중심점만 가리키는 이미지를 생성하고 싶습니다.

어떻게 해야할까요?

googlemap은 fragment이기 때문에 그 안에 imageView를 넣는게 불가능 한 것 같습니다.

도와주세요~!

  • (•́ ✖ •̀)
    알 수 없는 사용자

3 답변

  • XML을 통해서 Fragment를 추가할 수 있습니다. 관련된 내용은 아래의 링크에서 Add a Fragment to an Activity using XML을 참고하세요.

    위 방식을 이용해서 화면 중심에 항상 마커가 위치하도록 구현할 수 있습니다. 코드로 만든다면 다음과 같은 방식이 되겠네요.

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <fragment
            android:id="@+id/map"
            class="com.google.android.gms.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
        <ImageView
            android:id="@+id/marker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/marker"/>
    </RelativeLayout>
    

    Activity 코드

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.debug_map);
    
        SupportMapFragment mapFragment =
            (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 감사합니다. 위 코드에서 marker가 중앙에 위치하라는 명령은 어디에 내려야 하나요? 알 수 없는 사용자 2016.6.11 19:28
    • 관련된 추가 답변 작성했습니다. 참고하세요~ 알 수 없는 사용자 2016.6.12 00:10
  • 마커를 중앙에 위치시키는 부분은 XML 파일에서 ImageView의 android:layout_centerInParent="true" 속성입니다. 이렇게 하면 지도 위에 마커를 오버레이 시키기 때문에 지도의 이동과 무관하게 화면 가운데 마커를 위치시킬 수 있습니다.

    실제로 다음지도의 UI 레이아웃 경계를 살펴보면 지도 위에 오버레이 방식으로 마커를 표시하는 것을 알 수 있습니다. 마커 주변을 보면 빨간색 테두리를 확인할 수 있는데요. 이 레이아웃 경계(빨간색 테두리)가 마커를 지도에 그린 것이 아닌 별도의 레이아웃을 오버레이 시킨 것이다.라고 유추할 수 있는 부분입니다.

    이미지

    일반적인 마커를 살펴보면 아래 그림과 같이 테두리가 없는 것을 확인할 수 있고, 이런 마커들은 지도에 직접 그려진 마커를 의미합니다.

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 친절한 설명 감사합니다!.. 매번 도움이 많이 됩니다. 복받으세요~!! 알 수 없는 사용자 2016.6.12 00:42
  • 마커를 커스텀하면 됩니다. 자세한 부분은 구글 검색을 사용하시기바랍니다.

    마커 자체를 커스텀하면 기본 마커 모양이 아니라 원하시는 모양으로 변경 가능합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 마커를 찍는게 아니라 화면 중앙을 계속 따라다니게 표시하고 싶은것인데요, 마커를 찍고 마커가 화면에 따라오도록 계속 이동시켜야 하는건가요? 알 수 없는 사용자 2016.6.11 15:06

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)