검색결과 리스트
Android PopupWindow에 해당되는 글 1건
- 2012.03.06 [Android] Popup Window 2
글
팝업 윈도우는 임의의 뷰를 담는 컨테이너로 현재 액티비티 위에 잠깐 열리는 윈도우다.
이것은 액티비티 전환 없이!! 잠시 열리는 화면을 보여 줄 때 적절한 것 같다. 이는 다이얼로그와 거의 흡사한 형태이다.
먼저 따로 팝업용으로 레이아웃을 하나 만든다. 그 다음 아래와 같은 코드를 넣어보면 어떤 형태인지 확인이 가능 할 것이다.
public class ImageViewActivity extends Activity{
PopupWindow m_pop;
View m_popup_view;
LinearLayout m_linear;
Button m_btn;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_linear = (LinearLayout)findViewById(R.id.main);
m_popup_view = View.inflate(this, R.layout.subactivity, null);
m_pop = new PopupWindow(m_popup_view,200,100,true);
m_btn = (Button)findViewById(R.id.btn1);
m_btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
//m_pop.showAtLocation(m_linear, Gravity.NO_GRAVITY, 50, 100);//지정위치
//m_pop.showAtLocation(m_linear, Gravity.CENTER, 0, 0);//중앙
//m_pop.showAtLocation(m_linear, Gravity.HORIZONTAL_GRAVITY_MASK|Gravity.BOTTOM, 0, 0);//수평중앙,수직바닥
m_pop.setAnimationStyle(-1);
m_pop.showAsDropDown(m_btn);
}
});
Button btn = (Button)m_popup_view.findViewById(R.id.btn2);
btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
m_pop.dismiss();
}
});
}
}
위에서 보면 showAtLocation을 이용하여 원하는 위치로 배정 할 수가 있다. 그라비티의 경우를 감안하여야 한다.
또한 위에서 보면 dismiss() 함수를 볼 수 있는데 이는 팝업을 닫는 것이며, isShowing()으로 팝업이 열렸는지 닫혔는지 구분이 가능하다.
그리고 m_pop.setAnimationStyle(-1); m_pop.showAsDropDown(m_btn); 부분을 확인 할 수가 있는데 -1은 디폴트 애니메이션 효과를 나타낸다. 0일 경우에는 효과를 사용하지 않는 것이며 showAsDropDown을 이용하여 버튼에 이벤트를 연결 한 것이다.
이것은 액티비티 전환 없이!! 잠시 열리는 화면을 보여 줄 때 적절한 것 같다. 이는 다이얼로그와 거의 흡사한 형태이다.
먼저 따로 팝업용으로 레이아웃을 하나 만든다. 그 다음 아래와 같은 코드를 넣어보면 어떤 형태인지 확인이 가능 할 것이다.
public class ImageViewActivity extends Activity{
PopupWindow m_pop;
View m_popup_view;
LinearLayout m_linear;
Button m_btn;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_linear = (LinearLayout)findViewById(R.id.main);
m_popup_view = View.inflate(this, R.layout.subactivity, null);
m_pop = new PopupWindow(m_popup_view,200,100,true);
m_btn = (Button)findViewById(R.id.btn1);
m_btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
//m_pop.showAtLocation(m_linear, Gravity.NO_GRAVITY, 50, 100);//지정위치
//m_pop.showAtLocation(m_linear, Gravity.CENTER, 0, 0);//중앙
//m_pop.showAtLocation(m_linear, Gravity.HORIZONTAL_GRAVITY_MASK|Gravity.BOTTOM, 0, 0);//수평중앙,수직바닥
m_pop.setAnimationStyle(-1);
m_pop.showAsDropDown(m_btn);
}
});
Button btn = (Button)m_popup_view.findViewById(R.id.btn2);
btn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
m_pop.dismiss();
}
});
}
}
위에서 보면 showAtLocation을 이용하여 원하는 위치로 배정 할 수가 있다. 그라비티의 경우를 감안하여야 한다.
또한 위에서 보면 dismiss() 함수를 볼 수 있는데 이는 팝업을 닫는 것이며, isShowing()으로 팝업이 열렸는지 닫혔는지 구분이 가능하다.
그리고 m_pop.setAnimationStyle(-1); m_pop.showAsDropDown(m_btn); 부분을 확인 할 수가 있는데 -1은 디폴트 애니메이션 효과를 나타낸다. 0일 경우에는 효과를 사용하지 않는 것이며 showAsDropDown을 이용하여 버튼에 이벤트를 연결 한 것이다.
RECENT COMMENT