검색결과 리스트
글
안드로이드의 걸림돌....UI 작업입니다. ㅠㅠ
각 기종마다 다른 DPI 에 따라 작업을 해야하는 경우가 생깁니다. 참고하세요
dpi( dots per inch) = > 1인치에 들어 있는 픽셀의 수. 안드로이드에서는 160을 기본으로 한다.
코드상에서 구하는법 => context.getResources().getDisplayMetrics().densityDpi
디바이스 독립 픽셀
dp = pixel / (dpi=density / 160)
안드로이드기반 디바이스들의 dp가 같으면 dp 단위로 레이아웃을 작성하면 된다.
하지만 다른 폼팩터일 경우에는 레이아웃을 새로 만드는편이 낫다?
아래는 현재 나와있는 스마트폰을 정리해 봄
[HVGA 스마트폰]
- RESOLUTION : 320px(320dp) * 480px(480dp)
- DENSITY DPI : 160 dpi
- SCREEN SIZE : normal
예 : G1, 옵티머스원
[WVGA 스마트폰]
- RESOLUTION : 480px(320dp) * 800px(533dp) or 854px(569dp)
- DENSITY DPI : 240 dpi
- SCREEN SIZE : normal
예 : 넥서스원, 갤럭시S, 갤럭시S2 , XPERIA X10
[7인치 태블릿]
- RESOLUTION : 600px(600dp) * 1024px(1024dp)
- DENSITY DPI : 160 dpi
- SCREEN SIZE : large
예 : 킨들 파이어
[10인치 태블릿]
- RESOLUTION : 800px(800dp) or 720px(720dp) * 1280px(1280dp)
- DENSITY DPI : 160 dpi
- SCREEN SIZE : xlarge
예 : 갤럭시탭 10.1, 모토로라 XOOM
[갤럭시노트]
- RESOLUTION : 800px(400dp) * 1280px(640dp)
- DENSITY DPI : xhdpi, 320 dpi
[7인치 갤럭시탭]
- RESOLUTION : 600px(400dp) * 1024px(682dp)
- DENSITY DPI : hdpi, 240 dpi
- SCREEN SIZE : large(Gingerbread)
안드로이드를 기반으로한 폼팩터가 스크린을 기준으로 4개로 나뉜다는 것을 볼수있다.
1. 320dp 스마트폰
2. 400dp 태블릿폰
3. 600dp 7인치 태블릿
4. 720dp(800dp) 10인치 태블릿.
따라서 다중디스플레이를 지원하려면 총 4개의 폼팩터 별로 레이아웃을 작성하는것이 좋을것 같다.
추가(2012.03.05)
안드로이드 3.2 이상에서는 dp로 레이아웃 지정이 가능하다.
1. dp 너비(width dp): 현재 어플리케이션 레이아웃을 위해 사용할 수 있는 "dp" 너비 값입니다. 화면의 가로 세로 모드에 따라 변경됩니다 (사용법: layout-w400dp)
2. dp 높이(height dp): 현재 어플리케이션 레이아웃이 사용할 수 있는 "dp" 높이 값 입니다. 화면의 가로 세로 모드에 따라 변경됩니다. (사용법: layout-h800dp)
3. 최소 dp 너비(smallest width dp): 어플리케이션 레이아웃이 사용가능한 최소 너비 값 입니다. 화면 회전과 상관없이 단말의 가로 세로 중에 작은 "dp"값에 따라 변경됨. (일반적으로 디바이스가 세로 모드일 때의 dp 너비 값, 사용법: layout-sw800dp)
예1)
res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger)
예2)
res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
res/layout-w600dp/main_activity.xml # Multi-pane (any screen with 600dp available width or more)
'Android' 카테고리의 다른 글
[Android]strings.xml 사용시 팁 (0) | 2012.08.24 |
---|---|
[Android]다국어 지원시 TIP (0) | 2012.08.21 |
[Android] 키보드 숨기기/보이기 (0) | 2012.07.19 |
[Android]안드로이드 라이프 사이클 (0) | 2012.06.21 |
[Android]APIDemo 순서입니다. (0) | 2012.05.31 |
설정
트랙백
댓글
글
'Android' 카테고리의 다른 글
[Android]다국어 지원시 TIP (0) | 2012.08.21 |
---|---|
[Android] DPI 구하기! (0) | 2012.07.19 |
[Android]안드로이드 라이프 사이클 (0) | 2012.06.21 |
[Android]APIDemo 순서입니다. (0) | 2012.05.31 |
[Android]D-day 계산기 만들어보기. (0) | 2012.05.29 |
설정
트랙백
댓글
글
1. onResume()/onPause()
onPause() 함수는 Activity 위에 다른 Activity 가 올라오거나 하여 focus 를 잃었을 때 불린다.
onResume() 함수는 focus 를 다시 얻었을 때 불린다.
예를 들어 폰의 alarm 이 울리거나 전화가 오는 경우 onPause() 함수가 불린다.
2. onStart()/onStop()
onStop() 함수는 Activity 가 완전히 화면을 벗어날 때 불린다. 예를 들어 홈키를 눌러 홈화면으로 이동하거나 전화가 와서 화면을 완전히 덮는 경우 불린다.
onStart() 함수는 Activity 다시 화면이 다시 돌아 올 때 불린다.
3. 선택 방법
만약 자신의 Activity 위에 다른 Activity 가 올라왔는데 화면을 전부 채우지 않았을 때 작업을 계속 하고 싶다면 onStart()/onStop() 함수에 작업 시작/종료 를 구현하면 되겠고 Activity 가 focus 를 잃으면 무조건 작업을 종료해야 하는 경우 onResume()/onPause() 함수에 작업 시작/종료를 구현하면 되겠다.
'Android' 카테고리의 다른 글
[Android] DPI 구하기! (0) | 2012.07.19 |
---|---|
[Android] 키보드 숨기기/보이기 (0) | 2012.07.19 |
[Android]APIDemo 순서입니다. (0) | 2012.05.31 |
[Android]D-day 계산기 만들어보기. (0) | 2012.05.29 |
[Android]키보드 입력 종류 (0) | 2012.05.29 |
RECENT COMMENT