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;
- 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" //--- 가로 고정
- 참고 문헌
*** 참고 문헌 ***
Posted by 산사랑

