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

안드로이드 디스플레이 해상도말고 실제 디스플레이 크기를 구하는 방법이 있나요?

0 추천
폭 사이즈에 따라 이미지를 다르게 주고 싶은데요

찾아보니까 해상도는 구할 수가 있어도 디스플레이의 실제 폭 사이즈는 구할 수가 없더라구요

현재 갖고 있는 태블릿이 스마트폰보다 해상도가 더 낮아서 원하는 대로 출력이 되지 않구요...

실제 사이즈를 구하는 방법이 있을까요?
zenojm (2,840 포인트) 님이 2017년 9월 4일 질문

1개의 답변

0 추천
 
채택된 답변

물리적인 실제 Pixels 사이즈는 가져올 수 있으나, 앱이 실행된 후에 사이즈를 알게되기까지는 시간이 걸립니다.

아래 함수까지 와야지만, 사이즈가 들어옵니다. 그전까지는 항상 0입니다. 그래서 상황이 복잡해 지죠.

왜냐하면, onCreate()나 onResume()에서 뷰객체들을 그릴 수 없기 때문입니다.

@Override
 public void onWindowFocusChanged(boolean hasFocus) {
  super.onWindowFocusChanged(hasFocus);
isplay display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

 

실제 Pixel이 1000 Pixels이라고 해도 실제 물리적인 사이즈가 2인치일 수도 있고, 4인치일 수도 있습니다.

4인치일 경우에 버튼을 200 Pixels로 width를 지정했다면, 2인치의 경우에는 400 Pixels로 해야

실제적으로 보이는 물리적인 사이즈는 같습니다.

dpi의 개념이죠. 이 부분은 계산하는 함수가 있습니다.

Will Kim (43,170 포인트) 님이 2017년 9월 5일 답변
zenojm님이 2017년 9월 25일 채택됨
...