• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=다양한 화면 밀도 지원
2parent.title=다양한 화면 지원
3parent.link=index.html
4
5trainingnavtop=true
6previous.title=다양한 화면 크기 지원
7previous.link=screensizes.html
8next.title=조정형 UI 플로우 구현
9next.link=adaptui.html
10
11@jd:body
12
13
14<!-- This is the training bar -->
15<div id="tb-wrapper">
16<div id="tb">
17
18<h2>강의 목표</h2>
19<ol>
20  <li><a href="#TaskUseDP">DIP(Density Independent Pixel) 사용</a></li>
21  <li><a href="#TaskProvideAltBmp">대체 비트맵 제공</a></li>
22</ol>
23
24<h2>참고자료</h2>
25
26<ul>
27  <li><a href="{@docRoot}guide/practices/screens_support.html">여러 화면 지원</a></li>
28  <li><a href="{@docRoot}guide/practices/ui_guidelines/icon_design.html">아이콘 디자인 가이드라인</a></li>
29</ul>
30
31<h2>다운로드 </h2>
32
33<div class="download-box">
34<a href="http://developer.android.com/shareables/training/NewsReader.zip" class="button">샘플 앱 다운로드</a>
35<p class="filename">NewsReader.zip</p>
36</div>
37
38
39</div>
40</div>
41
42<p>이 강의에서는 다양한 리소스를 제공하고 해상도 독립형(resolution-independent) 측정 단위를 사용함으로써 다양한 화면 밀도를 지원하는 방법을 설명합니다.</p>
43
44<h2 id="TaskUseDP">DIP(Density Independent Pixel) 사용</h2>
45
46<p>레이아웃을 디자인할 때 범하기 쉬운 실수 중 하나는 절대 픽셀(absolute pixel)을 사용하여 거리나 크기를 정의하는 것입니다. 각 화면은 픽셀 밀도가 서로 다른데 레이아웃 크기를 픽셀로 정의하면 동일한 픽셀 수치가 다른 기기에서 다른 물리적 크기와 대응할 수 있어 문제가 됩니다. 따라서 크기를 지정할 때에는 항상 <code>dp</code> 또는 <code>sp</code> 단위를 사용하시기 바랍니다. <code>dp</code>는 160dpi에서 픽셀의 물리적 크기에 대응하는 밀도 독립형 픽셀(Density Independent Pixel)입니다. <code>sp</code>는 동일한 기본 단위이지만 사용자의 기본 텍스트 크기에 따라 확대/축소될 수 있으므로(배율 독립형 픽셀(Scale Independent Pixel)임) 텍스트 크기를 정의할 때 이 측정 단위를 사용해야 합니다(레이아웃 크기에 사용해서는 안됨).</p>
47
48<p>예를 들어 두 개의 보기 사이에 여백을 지정할 때 <code>px</code>가 아닌 <code>dp</code>를 사용합니다.</p>
49
50<pre>
51&lt;Button android:layout_width="wrap_content"
52    android:layout_height="wrap_content"
53    android:text="&#64;string/clickme"
54    android:layout_marginTop="20dp" /&gt;
55</pre>
56
57<p>텍스트 크기를 지정할 때에는 항상 <code>sp</code>를 사용합니다.</p>
58
59<pre>
60&lt;TextView android:layout_width="match_parent"
61    android:layout_height="wrap_content"
62    android:textSize="20sp" /&gt;
63</pre>
64
65
66<h2 id="TaskProvideAltBmp">대체 비트맵 제공</h2>
67
68<p>Android는 화면 밀도가 다양한 기기에서 실행되므로 각각의 일반화된 밀도 종류(저, 중, 고 및 초고 밀도)에 맞춤화된 비트맵 리소스를 제공해야 합니다. 이렇게 하면 모든 화면 밀도에서 좋은 그래픽 품질 및 성능을 얻는데 도움이 됩니다.</p>
69
70<p>이러한 이미지를 생성하려면 벡터 형식의 원본 리소스부터 시작해야 하며 다음 크기 배율을 사용하여 각 밀도에 사용할 이미지를 생성해야 합니다.</p>
71
72<p><ul>
73  <li><code>xhdpi</code>: 2.0
74  <li><code>hdpi</code>: 1.5
75  <li><code>mdpi</code>: 1.0 (기선)
76  <li><code>ldpi</code>: 0.75
77</ul></p>
78
79<p>즉 <code>xhdpi</code> 기기에 대해 200x200 이미지를 생성하는 경우 <code>hdpi</code> 기기에 대해 동일한 리소스를 150x150으로 생성해야 하며 <code>mdpi</code> 기기에 대해서는 100x100, <code>ldpi</code> 기기에 대해서는 75x75으로 동일한 리소스를 생성해야 합니다.</p>
80
81<p>그런 다음 생성된 이미지 파일을 <code>res/</code> 아래의 적절한 하위 디렉토리에 배치하면 시스템에서 애플리케이션이 실행되는 기기의 화면 밀도에 따라 정확한 이미지 파일을 자동으로 선택합니다.</p>
82
83<pre class="classic no-pretty-print">
84MyProject/
85  res/
86    drawable-xhdpi/
87        awesomeimage.png
88    drawable-hdpi/
89        awesomeimage.png
90    drawable-mdpi/
91        awesomeimage.png
92    drawable-ldpi/
93        awesomeimage.png
94</pre>
95
96<p>그런 다음 언제든지 <code>&#64;drawable/awesomeimage</code>를 참조하면 시스템이 화면의 dpi에 따라 적합한 비트맵을 선택합니다.</p>
97
98<p>애플리케이션에 사용할 아이콘 저작물 제작에 대한 자세한 도움말 및 가이드라인은 <a
99href="{@docRoot}guide/practices/ui_guidelines/icon_design.html">아이콘 디자인 가이드라인</a>을 참조하세요.</p>
100
101