반응형
링크 : http://linuxforge.tistory.com/60
링크 : http://www.jopenbusiness.com/tc/oss/entry/Android-UI
안드로이드 화면단위에 대한 용어 정리와 화면크기를 구하는 방법에 대해서 기술되어있습니다.
사이즈 구하기
1 |
Display dis = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); |
2 |
mDisWitdh = dis.getWidth(); // 가로 사이즈 |
3 |
mDisHeight = dis.getHeight(); // 세로 사이즈 |
해상도 구하기
view source
1 |
DisplayMetrics metrics = new DisplayMetrics(); |
2 |
getWindowManager().getDefaultDisplay().getMetrics(metrics); |
// 해상도
안드로이드는 다양한 화면 크기를 가지고 있는 스마트폰을 제공하고 있습니다. 그래서 안드로이드 UI에 대해서 간단히 정리를 해 봅니다. 안드로이드폰을 회전 하였을 경우의 처리는 다음 기회에 올리 겠습니다.
Android UI
용어 정의
density |
|
dip |
|
Resolution |
|
화면 크기
Screen Size 구하기
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int pxWidth = displayMetrics.widthPixels;
int pxHeight = displayMetrics.heightPixels;
//--- displayMetrics.density : density / 160, 0.75 (ldpi), 1.0 (mdpi), 1.5 (hdpi)
int dipWidth = displayMetrics.widthPixels / displayMetrics.density;
int dipHeight = displayMetrics.heightPixels / displayMetrics.density;
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int pxWidth = displayMetrics.widthPixels;
int pxHeight = displayMetrics.heightPixels;
//--- displayMetrics.density : density / 160, 0.75 (ldpi), 1.0 (mdpi), 1.5 (hdpi)
int dipWidth = displayMetrics.widthPixels / displayMetrics.density;
int dipHeight = displayMetrics.heightPixels / displayMetrics.density;
Activity에서 화면 크기 구하는 방법
StringBuffer buf = null; WindowManager wm = null; Display display = null; DisplayMetrics metrics = null; wm = getWindowManager(); display = wm.getDefaultDisplay(); metrics = new DisplayMetrics(); display.getMetrics(metrics); buf = new StringBuffer(); buf.append("Window display id: " + display.getDisplayId() + "\n"); buf.append("Window orientation: " + display.getOrientation() + "\n"); buf.append("Window width: " + display.getWidth() + "\n"); buf.append("Window height: " + display.getHeight() + "\n"); buf.append("Window pixel format: " + display.getPixelFormat() + "\n"); buf.append("Window refresh rate: " + display.getRefreshRate() + "\n"); buf.append("Window width pixels: " + metrics.widthPixels + "\n"); buf.append("Window height pixels: " + metrics.heightPixels + "\n"); testMsg.setText(buf.toString());
- 갤럭시S의 화면 크기
-
- 세로 화면 크기
- Window display id: 0
- Window orientation: 0
- Window width: 320
- Window height: 533
- Window pixel format: 5
- Window refresh rate: 68.0
- Window width pixels: 320
- Window height pixels: 533
- 가로 화면 크기
- Window display id: 0
- Window orientation: 1
- Window width: 533
- Window height: 320
- Window pixel format: 5
- Window refresh rate: 68.0
- Window width pixels: 533
- Window height pixels: 320
Resource
- /res/layout/
-
- layout-small, layout-large
- /res/drawable/
-
- drawable-ldpi, drawable-mdpi, drawable-hdpi, drawable-nodpi
- Dimensions
-
- /res/values/dimensions.xml
<resources> <dimen name="size">10dip</dimen> </resources> int size = getResources().getDimensionPixelSize(R.dimen.length);
화면 회전
- 회전 상태 확인
-
- Android 2.1
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); //--- orientation : 0. 세로, 1. 가로 int orientation = display.getOrientation();
-
- Android 2.2
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); //--- Surface.ROTATION_0 : 세로 //--- Surface.ROTATION_90 : 가로 //--- Surface.ROTATION_180 : 세로 //--- Surface.ROTATION_270 : 가로 int rotation = display.getRotation();
- 화면 회전 금지
-
- AndroidManifest.xml에서 모든 Activity에 다음을 추가 한다.
android:screenOrientation="portrait" //--- 세로 고정 android:screenOrientation="landscape" //--- 가로 고정
- 참고 문헌
*** 참고 문헌 ***
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] 커스텀 폰트 변경 (Custom Font) (0) | 2011.04.05 |
---|---|
View를 상속받은 컨트롤(TextView, ImageView, ...)들 Bitmap으로 변환하기 (3) | 2011.03.30 |
안드로이드 속성값인 fill_parent 에서 match_parent 로의 변경 (0) | 2011.03.25 |
이클립스 워크스페이스 설정 (0) | 2011.03.24 |
NotificationBar와 TitleBar의 크기를 알아내는 방법 (0) | 2011.03.20 |
XML 사용자 속성 정의 및 사용하기 (2) | 2011.03.17 |
안드로이드 커널 소스에는 있지만 안드로이드 SDK 에서 미제공 되는 함수의 원인 (0) | 2011.03.17 |
Android's StateListDrawable and RadioButton Example (2) | 2011.03.16 |
[지하철정보 만들기] 일정수립 및 개발범위 설정 (2) | 2011.03.13 |
커스텀 속성 - Passing custom attributes via XML resource files (0) | 2011.03.10 |