2013년 5월 23일 목요일

[Android] PopupWindow 사용 예제

팝업 윈도우를 사용해보자.

아래는 공식 레퍼런스

아래 처럼 버튼 클릭시 버튼 3개로 구성된 팝업윈도우를 띄워보자.


java 코드
public class Main extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //팝업을 띄우기 위하 버튼 하나 만들고
        Button btn = (Button) findViewById(R.id.btn_popup);
        btn.setOnClickListener(new Button.OnClickListener() {
         public void onClick(View v) {
          
          //클릭시 팝업 윈도우 생성
          PopupWindow popup = new PopupWindow(v);
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          //팝업으로 띄울 커스텀뷰를 설정하고
          View view = inflater.inflate(R.layout.test_popup_window, null);
          popup.setContentView(view); 
          //팝업의 크기 설정
          popup.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
          //팝업 뷰 터치 되도록
          popup.setTouchable(true);
          //팝업 뷰 포커스도 주고
          popup.setFocusable(true);
          //팝업 뷰 이외에도 터치되게 (터치시 팝업 닫기 위한 코드)
          popup.setOutsideTouchable(true);
          popup.setBackgroundDrawable(new BitmapDrawable());
          //인자로 넘겨준 v 아래로 보여주기
          popup.showAsDropDown(v);
         }
        });
    }
}


test_popup_window.xml


    

xml 코드가 이상하게 붙네;;

암튼 이런식으로 커스텀 팝업윈도우를 쓸 수 있다.

댓글 2개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. 덕분에 개발 공부하고 있습니다. 제 블로그에 참고자료로 퍼가도 될까요?
    제 블로그는 http://straight-strange.tistory.com/입니다.

    답글삭제