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<Button android:layout_width="wrap_content" 52 android:layout_height="wrap_content" 53 android:text="@string/clickme" 54 android:layout_marginTop="20dp" /> 55</pre> 56 57<p>텍스트 크기를 지정할 때에는 항상 <code>sp</code>를 사용합니다.</p> 58 59<pre> 60<TextView android:layout_width="match_parent" 61 android:layout_height="wrap_content" 62 android:textSize="20sp" /> 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>@drawable/awesomeimage</code>를 참조하면 시스템이 화면의 dpi에 따라 적합한 비트맵을 선택합니다.</p> 97 98<p>애플리케이션에 사용할 아이콘 저작물 제작에 대한 자세한 도움말 및 가이드라인은 <a 99href="{@docRoot}guide/practices/ui_guidelines/icon_design.html">아이콘 디자인 가이드라인</a>을 참조하세요.</p> 100 101