마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android maps API v2 사용해서 맵을 다이아로그로 띄우는 부분 질문.

0 추천
package com.ercompany.minggle.android.apt.dialog;

import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Window;

import com.ercompany.minggle.android.apt.R;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;

public class MapDialog extends Dialog {

	MapFragment fragment;
	GoogleMap googleMap;
	
	public MapDialog(Context context) {
		super(context);
		requestWindowFeature( Window.FEATURE_NO_TITLE);
		getWindow().setBackgroundDrawable( new ColorDrawable( Color.TRANSPARENT ) );
		setContentView(R.layout.mapdialog);
		//googleMap = ((SupportMapFragment)fragment.getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
	}



}

현재 자바 코드 입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:orientation="vertical" >
	
    <fragment android:id="@+id/map"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>

</LinearLayout>

xml부분이구요

 

기본적인 맵띄우기 까지는 FragmentActivity 를 상속받아서 성공을 했구요 그거를 다이아로그로 띄울려고 하는데요

당연히 그래서 상속을 Dialog 로 바꿧구요 그다음에 진행을 해보려구 하는데 .. googlemap 사용이 처음이고 초보개발자이다 보니 전혀 감이 안오네요 .. 다이어 로그까지만 뜨면 그내부에 맵부분에 경도위도 라던지 이런부분은 또 구글링으로 작성해보겠는데요..

정확한 해결을 하고싶은 부분은

구글맵 v2 가 fragment를 이용해서 액티비티에 보여지게 되는거 같은데요 . 이부분을 다른 액티비티에서 클릭시 new 로 생성해서 보여주는 다이아로그로 띄울려 하는겁니다. 고수님들의 도움이 필요해요 

구기웅 (1,110 포인트) 님이 2013년 8월 21일 질문

2개의 답변

+1 추천

다이얼로그로 띄우지 마시고

엑티비티를 띄우시면 됩니다. theme을 다이얼로그로 주시고요

        <activity
            android:name=".mapDialog"
            android:screenOrientation="portrait"
            android:theme="@style/Dialog" >
        </activity>
 
 
themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
</style>
</resources>
 

 

익명사용자 님이 2013년 8월 21일 답변
조금만더 자세히 부탁드려도 될까요 ?

<activity> 태그는 어디에 작성하는건가요 ?

현제 제 파일중에서는 어디부분을 수정해야하는건가요 ?
아하 manifest 부분에서 추가를 하라는 말씀이셨군요 .. 감사합니다.
정말 도움이 됬습니다 !!1
허나 화면주변이 어둡게 되는부분이 생기네요 ...
다이아로그로 구현을 할수는 없는건가요 ?
+1 추천
아랫분 답변이 다이얼로그화 하는게 맞기는 한데....

기본 아이얼로그 골격에 뷰를 추가하다 보니 다이얼로그 기본 골격이 출력되게 되죠...

이 부분이 걸리신다면....

테마를 Translucent로 주시면 됩니다~~!

이 테마는 머랄까? 배경이 투명한 엑티비티라고 생각하시면 됩니다.

감이 안오시면 작은 이미지 뷰를 가운데 정렬하여 띄어 보시면 감이 오실 겁니다.
ThisPlus (46,920 포인트) 님이 2013년 8월 21일 답변
답변 감사합니다 .
액티비티를 다이얼로그화 시켜서 사이즈를 원하는거에 맞게 줄인후에 출력시키게 되면 다이얼 로그처럼 보이는 부분은 확인했습니다.
다만 액티비티가 아닌 다이아로그를 상속해서 구현을 할수는 없는건가요 ?
하루죙일 붙잡고 이모양이고 stack over flor 에서도 원하는 답을 찾을수가 없이 맵뷰 안에서 다이아로그 띄우는 부분만 확인했는데요 .

혹 액티비티가 아닌 다이아로그로 구현을 할수는 없나요 ?

프레임 레이아웃 안에
MapFragment fragment = new MapFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.mapView, fragment).commit();
를 동적 구성으로 하면 된다고 하는데 전혀 감이 안오네요 이부분이..
...