< 개발 환경 > < 프로젝트 적용 > |
안드로이드/Android PopupWindow를 사용해 보자 ~!
이번 시간에는 PopupWindow를 사용법에 대해 알아 보겠습니다. 팝업 윈도우란 기본적으로 Dialog의 특성을 지녔다고 보시면 되는데, Dialog처럼 혼자 Focus를 받고 Dialog 종료시 까지는 아무런 작업을 할 수 없는 Dialog가 아니라 화면에 Dialog처럼 표시가 되더라도 나머지 기능들을 동시에 사용할 수 있다고 보시면 됩니다.
자 그럼 예제를 통해 알아 보겠습니다.
package arabiannight.tistory.com.popupwindow;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager.LayoutParams;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.Toast;
public class MainActivity extends Activity {
private PopupWindow mPopupWindow;
private Button btn_Popup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_Popup = (Button) findViewById(R.id.btn_click);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_click:
View popupView = getLayoutInflater().inflate(R.layout.popup_window, null);
mPopupWindow = new PopupWindow(popupView,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
/**
* PopupWindow Show 메서드
* showAsDropDown(anchor, xoff, yoff)
* @View anchor : anchor View를 기준으로 PopupWindow 표시 (상,하)
* PopupWindow가 최대한 화면에 표시되도록 시스템이 설정해 준다.
* xoff, yoff : anchor View를 기준으로 PopupWindow를 표시된것을
* 기준으로 xoff는 x좌표, yoff는 y좌표 만큼 이동 한다.
* @int xoff : -숫자(화면 왼쪽으로 이동), +숫자(화면 오른쪽으로 이동)
* @int yoff : -숫자(화면 위쪽으로 이동), +숫자(화면 아래쪽으로 이동)
* achor View 를 덮는 것도 가능
* 화면바깥 좌우, 위아래로 이동 가능 (짤린 상태로 표시됨)
*/
mPopupWindow.setAnimationStyle(-1); // 애니메이션 설정(-1:설정안함, 0:설정)
mPopupWindow.showAsDropDown(btn_Popup, 50, 50);
/**
* update() 메서드를 통해 PopupWindow의 좌우 사이즈, x좌표, y좌표
* anchor View까지 재설정 해줄수 있습니다.
*/
// mPopupWindow.update(anchor, xoff, yoff, width, height)(width, height);
break;
case R.id.btn_close:
if (mPopupWindow != null && mPopupWindow.isShowing()) {
mPopupWindow.dismiss();
}
break;
case R.id.btn_bottom:
Toast.makeText(MainActivity.this, "Bottom UI 입니다.", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
파일첨부 :
위의 스크린샷을 보시면 PopupWindow가 알림창 아래에서 짤려서 표시 된 것을 보실 수 있습니다. 만약 좌표를 저렇게 주신다면 짤린 형태로 표시되게 되구요. 안드로이드 Dialog와는 다르게 동시에 다른 View들의 이벤트들을 처리 할 수 있습니다.
사용 하실 때에는 xml 레이아웃을 만드신 후 inflate 시켜 주시면 됩니다.
감사합니다.
'Android > Dialog' 카테고리의 다른 글
| 안드로이드/Android Dialog의 각종 속성들 정리 ~! (3) | 2013.02.03 |
|---|---|
| 안드로이드/Android PopupWindow를 사용해 보자 ~! (NEW) (4) | 2013.01.19 |
| 안드로이드/Android Activity theme를 이용한 Popup(Dialog)창 만들기~! (1) | 2013.01.04 |
| 안드로이드/Android Handler를 사용한 ProgressDialog 띄우기 (1) | 2012.06.28 |
| 안드로이드/Android 다이얼로그 안에서 onClick() 메서드 안에서 Activity finish() 호출 하기 (0) | 2012.06.22 |
TestPopupWindow.zip