2011-11-16 2 views
0

새 사용자를 위해 기존 레이아웃 위에 몇 개의 자습서 텍스트 상자를 넣고 싶습니다. 동일한 대화 상자 효과를 만들고 싶습니다. 상자를 팝업하여 뭔가를 가리키고 다른 모든 것을 어둡게합니다.대화 상자와 동일한 효과로 기존 레이아웃 위에보기를 배치하는 방법

누군가 프레임 레이아웃을 사용하여 기본 레이아웃 위에 전체 화면 반투명 선형 레이아웃을 넣으려고했지만 그 방법을 모릅니다.

답변

0

, 나는 화면 때문에이 아닌 대화 상자를 사용했다 매우 사용자 정의되었습니다.

프레임 레이아웃에 초기 레이아웃을 넣은 다음 (반투명 배경 이미지를 사용하는 다른 레이아웃을 간단히 추가하여) 다른 레이아웃을 배치 한 다음 추가했습니다. 내 다른 레이아웃 .. 그럼 코드 (inital 레이아웃이 만들어진 후), 내가보기에 내가 원하는 다양한 방법을 사용 오버레이 (getLocationOnScreen() 및 getLayoutParams())를 사용하여 너비와 높이를 설정합니다.

0

는 팝업 대화 상자처럼 보이는 활동을 생성하여 ApiDemos에 폴더에 좋은 예입니다. 여기

source code이고 XML layout file 대응.

0

왜 그냥 대화를 사용하고 setContentView를 호출하지 않습니다?

Dialog dialog = new Dialog(this); 
dialog.setContentView(R.layout.dialogView); 
// initialize the components 

대화없이 수행 할 수있는 작업은 무엇입니까?

+0

처음에는 시도했지만 문제는 내 레이아웃이 가장자리를 구부러져 있었고 대화 상자 주위에 검은 색 테두리가있는 것입니다. . –

0

여기에 Dialog을 사용하지 않는 이유는 무엇입니까?

비활성화 (또는 추가하지 마십시오) 버튼을 누른 다음 사용하여 대화 상자에 사용자 정의보기를 추가 AlertDialog.Builder.setView(View yourView) :

호기심의 사람들을위한
private static final int YOUR_POPUP_ID = 0; 

@Override 
protected Dialog onCreateDialog(int id) { 
    if (id == YOUR_POPUP_ID) { 
     // yourView is what you actually want to show in popup 
     return new AlertDialog.Builder(this) 
      .setTitle("a title") 
      .setView(yourView) 
      .create(); 
    } 
} 

.. 

// some where in your code show the popup 
showDialog(YOUR_POPUP_ID); 
+0

내가 처음에 시도한 것이지만 문제는 내 레이아웃이 가장자리를 구부러져서 무엇을 했건 상관없이 대화 주위에 검은 색 테두리가 있다는 것입니다. –