본문 바로가기

안드로이드 스튜디오에서 간단하게 다이어로그 개발하기 -Custom Dialog-

by 머니해커_개발자 2020. 1. 5.

안녕하세요. thinkingfactory입니다.

안드로이드스튜디오에서 간단히 다이어로그를 개발하는 방법을 알려드리기 위해 포스트를 작성합니다.

윈도우에서와 마찬가지로 안드로이드에서도 사용자에게 정보를 제공하기 위해 다이어로그(Dialog)를 제공합니다. 안드로이드에서 기본적으로 제공하는 다이어로그 형태는 다음과 같습니다.

팝업 다이어로그

최신 안드로이드 디바이스에서는 다른 디자인을 볼 수 있는데, 이 디자인은 안드로이드 버전, ROM 등 소프트웨어를 공급해주는 개발사에 따라서 다릅니다.

본론으로 들어가서, 안드로이드 스튜디오를 켜서 다이어로그를 개발하도록 하겠습니다.

1. 다이어로그 레이아웃을 생성합니다.

layout > New > Layout resource file

레이아웃 리소스 파일을 생성하고 난 뒤, 간단히 퍼블리싱 작업을 통해 다이어로그 레이아웃을 원하는대로 작업해주세요. 자기가 원하는 레이아웃을 만드시면 됩니다. 액티비티처럼 작업하셔도 됩니다.

Cutomized Dialog Layout

이 때 전체를 감싸는 레이아웃의 width 부분이나 margin을 설정해서 팝업처럼 크기를 줄일 수 있습니다.

이렇게 단순하게 레이아웃 작업을 한 것을 가지고 자바 코드 작업을 하도록 하겠습니다.

2. 다이어로그 자바 코드를 생성합니다.

Dialog 폴더를 만들고 New>Java Class

저는 Dialog 라는 폴더를 생성해서 자바 코드를 생성했습니다. 이 때 Dialog를 상속받아서 작성합니다.

제 코드는 다음과 같습니다.

public class DialogFinish extends Dialog {

    Context context ;
    public DialogFinish(Context context) {
        super(context, android.R.style.Theme_Translucent_NoTitleBar);
        this.context = context;
    }
    public void init(){
       WindowManager.LayoutParams lpWindow = new WindowManager.LayoutParams();
        lpWindow.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
        lpWindow.dimAmount = 0.8f;
        getWindow().setAttributes(lpWindow);
        requestWindowFeature(Window.FEATURE_NO_TITLE); // 액티비티의 타이틀바를 숨긴다.
        setContentView(R.layout.dialog_match_player); // 커스텀 다이얼로그의 레이아웃을 설정한다.
        setCanceledOnTouchOutside(true);
    }
}

다이어로그 자바 코드 이미지

이렇게 레이아웃, 자바 코드를 작성하면 별다른 작업 없이 다이어로그를 띄울 수 있습니다.

3. 메인 엑티비티나 UI 쓰레드 위에서 Dialog를 호출합니다.

  DialogFinish dialogFinish = new DialogFinish(activity); // activity는 Context입니다. this로 작성하셔도 됩니다.
  dialogFinish.init();
  dialogFinish.show();

메인 엑티비티와 같은 UI작업이 가능한 쓰레드에서 Dialog를 init 호출한 뒤에, show로 불러올 수 있습니다.

확인 버튼을 누르면 onClick 작업을 발생시킨다던가, 이벤트를 개발하는 것은 다이어로그 코드의 init함수에서 작업할 수 있습니다.

만약에 메인 엑티비티와 상호작용해야될 경우, 메인엑티비티에서 onClickListener를 생성한 다음, 파라미터로 init에 넘기고 init에서 클릭 리스너를 버튼에 적용하는 방법이 있습니다.

저는 주로 다이어로그에서 해결하는 편인데, 엑티비티와 상호작용해야되는 경우 위 방법을 사용합니다.

다음은 제가 작성했던 롤 파트너 매칭 서비스 <롤파> 가이드 -일반 매칭편- 에서 삽입했던 이미지인데, 매칭 진행중을 띄운 다이어로그입니다.

 

롤 파트너 매칭 서비스 <롤파> 가이드 -일반 매칭편-

안녕하세요. Thinkinfactory입니다. 리그오브레전드를 사랑하는 여러분~! 이번에 출시해서 많은 호응을 얻고있는 롤파트너매칭 서비스, 롤파 어플의 이용법을 소개하겠습니다. 1. 플레이스토어에서 롤파를 설치합..

thinkingfactory.tistory.com

매칭 진행중 다이어로그

이상으로 간단한 다이어로그 작업을 하는 방법을 포스팅해봤습니다.

방법을 더 간단하게 적자면, 1. 레이아웃 짜기 2. 자바 개발 3. UI쓰레드에서 호출

이렇게 될 것 같습니다.

글 읽어주셔서 감사합니다.

댓글

최신글 전체

이미지
제목
글쓴이
등록일