마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

모든 기기에서 팝업이 나타나는 위치를 동일하게 바꿀수 없을까요?

0 추천
 
Button add;
PopupWindow popupWindow;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
 
// 팝업 윈도우를 출력하기 위한 버튼
 
add = (Button) findViewById(R.id.add);
 
add.setOnClickListener(this);
}
 
@Override
public void onClick(View v) {
 
switch (v.getId()) {
case R.id.add:
/* 윈도우 출력 */
 
break;
 
}
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.sidemenu,
null);
popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
 
popupWindow.showAsDropDown(popupView, 80, 320);
 
Button btnexit = (Button) popupView
.findViewById(R.id.popup_close);
btnexit.setOnClickListener(new OnClickListener() {
 
@Override
public void onClick(View v) {
popupWindow.dismiss();
 
}
});
 
}
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
현재 다음 소스로 팝업 윈도우를 띄우고 있습니다. 
그런데 각 핸드폰 기종마다 팝업이 나타나는 위치가 다른데요 
이것을 모든 디바이스에서 화면 중앙에 나타나게 할 수 있는 방법이 없을까요? 
 
qwlwwmq (560 포인트) 님이 2014년 1월 23일 질문

1개의 답변

0 추천
Display display = ((WindowManager) getContext()
							.getSystemService(Context.WINDOW_SERVICE))
							.getDefaultDisplay();

int halfDisplayWidth = display.getWidth() / 2;
int halfDisplayHeight = display.getHeight() / 2;

 

이렇게 디바이스의 중심값 구하시구요

팝업 좌표 지정하는게

popupWindow.showAsDropDown(popupView, 80, 320);

이거 맞나요?

여기에  x값,y값 넣어주시면 되겠네요 

슈루슈 (2,610 포인트) 님이 2014년 1월 23일 답변
이게 더 간단한거 같네요
popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
감사합니다.^^ 잘해결하였습니다.
...