Home | History | Annotate | Download | only in multiscreen
      1 page.title=Supporting Different Screen Sizes
      2 parent.title=Designing for Multiple Screens
      3 parent.link=index.html
      4 
      5 trainingnavtop=true
      6 next.title=Supporting Different Screen Densities
      7 next.link=screendensities.html
      8 
      9 @jd:body
     10 
     11 
     12 <!-- This is the training bar -->
     13 <div id="tb-wrapper"> 
     14 <div id="tb"> 
     15 
     16 <h2> </h2>
     17 <ol>
     18   <li><a href="#TaskUseWrapMatchPar">  wrap_content  match_parent</a></li>
     19   <li><a href="#TaskUseRelativeLayout">  RelativeLayout</a></li>
     20   <li><a href="#TaskUseSizeQuali">  </a></li>
     21   <li><a href="#TaskUseSWQuali">  Smallest-width</a></li>
     22   <li><a href="#TaskUseAliasFilters">  </a></li>
     23   <li><a href="#TaskUseOriQuali">  </a></li>
     24   <li><a href="#TaskUse9Patch">   nine-patch</a></li>
     25 </ol>
     26 
     27 <h2> </h2>
     28 
     29 <ul>
     30   <li><a href="{@docRoot}guide/practices/screens_support.html">  </a></li>
     31 </ul>
     32 
     33 <h2></h2> 
     34  
     35 <div class="download-box"> 
     36 <a href="http://developer.android.com/shareables/training/NewsReader.zip" class="button">  </a>
     37 <p class="filename">NewsReader.zip</p> 
     38 </div> 
     39  
     40 </div> 
     41 </div> 
     42 
     43 <p>           :</p>
     44 <ul> 
     45   <li>      ;</li> 
     46   <li>  ,   ;</li> 
     47   <li>   ;</li>
     48   <li>   .</li> 
     49 </ul> 
     50 
     51 
     52 <h2 id="TaskUseWrapMatchPar">  wrap_content  match_parent</h2> 
     53 
     54 <p>   ,     ,            <code>"wrap_content"</code>  <code>"match_parent"</code>.   <code>"wrap_content"</code>,        ,     ,   <code>"match_parent"</code> (  <code>"fill_parent"</code>  API  8&nbsp;)        .</p>
     55 
     56 <p>   <code>"wrap_content"</code>  <code>"match_parent"</code>    ,                  . :</p>
     57 
     58 {@sample development/samples/training/multiscreen/newsreader/res/layout/onepane_with_bar.xml all}
     59 
     60 <p>   ,            <code>"wrap_content"</code>  <code>"match_parent"</code>.            .</p>
     61 
     62 <p>,         .    ,         :</p>
     63 
     64 <img src="{@docRoot}images/training/layout-hvga.png" />
     65 <p class="img-caption"><strong> 1</strong>.  News Reader   ()   () .</p>
     66 
     67 
     68 <h2 id="TaskUseRelativeLayout">  RelativeLayout</h2> 
     69 
     70 <p>     <PH>{@link android.widget.LinearLayout}</PH>   <code>"wrap_content"</code>  <code>"match_parent"</code>     .  <PH>{@link android.widget.LinearLayout}</PH>         :  <PH>{@link android.widget.LinearLayout}</PH>        .       ,   <PH>{@link android.widget.RelativeLayout}</PH>,     . ,         ,  &nbsp;  .</p>
     71 
     72 <p>:</p>
     73 
     74 <pre>
     75 &lt;?xml version="1.0" encoding="utf-8"?&gt;
     76 &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     77     android:layout_width="match_parent"
     78     android:layout_height="match_parent"&gt;
     79     &lt;TextView
     80         android:id="&#64;+id/label"
     81         android:layout_width="match_parent"
     82         android:layout_height="wrap_content"
     83         android:text="Type here:"/&gt;
     84     &lt;EditText
     85         android:id="&#64;+id/entry"
     86         android:layout_width="match_parent"
     87         android:layout_height="wrap_content"
     88         android:layout_below="&#64;id/label"/&gt;
     89     &lt;Button
     90         android:id="&#64;+id/ok"
     91         android:layout_width="wrap_content"
     92         android:layout_height="wrap_content"
     93         android:layout_below="&#64;id/entry"
     94         android:layout_alignParentRight="true"
     95         android:layout_marginLeft="10dp"
     96         android:text="OK" /&gt;
     97     &lt;Button
     98         android:layout_width="wrap_content"
     99         android:layout_height="wrap_content"
    100         android:layout_toLeftOf="&#64;id/ok"
    101         android:layout_alignTop="&#64;id/ok"
    102         android:text="Cancel" /&gt;
    103 &lt;/RelativeLayout&gt;
    104 </pre>
    105 
    106 <p> .&nbsp;2 ,       QVGA.</p>
    107 
    108 <img src="{@docRoot}images/training/relativelayout1.png" />
    109 <p class="img-caption"><strong>&nbsp;2</strong>.   QVGA ( ).</p>
    110 
    111 <p> .&nbsp;3 ,        .</p>
    112 
    113 <img src="{@docRoot}images/training/relativelayout2.png" />
    114 <p class="img-caption"><strong>&nbsp;3</strong>.   WSVGA ( ).</p>
    115 
    116 <p> :          ,      <PH>{@link android.widget.RelativeLayout.LayoutParams}</PH>.</p>
    117 
    118  
    119 <h2 id="TaskUseSizeQuali">  </h2> 
    120 
    121 <p>   ,     ,   .     ,             ,          .         ,        .      <a href="http://developer.android.com/guide/practices/screens_support.html#qualifiers"> </a>,     ,     (,       ).</p>
    122 
    123 <p>        ,        ,      .            ,          .        .</p>
    124 
    125 <ul>
    126   <li><code>res/layout/main.xml</code>,   ( ):
    127 
    128 {@sample development/samples/training/multiscreen/newsreader/res/layout/onepane.xml all}
    129 </li>
    130   <li><code>res/layout-large/main.xml</code>,  :
    131 
    132 {@sample development/samples/training/multiscreen/newsreader/res/layout/twopanes.xml all}
    133 </li>
    134 </ul>
    135 
    136 <p> ,          <code>large</code>.      ,     (, 7&nbsp;  ).   ( )       .</p>
    137 
    138 
    139 <h2 id="TaskUseSWQuali">  Smallest-width</h2>
    140 
    141 <p>  ,        Android   3.2,     "" .    Dell Streak,   Galaxy Tab       7&nbsp;.    -     (,  5-  7- ),        "" .  Android  3.2      Smallest-width.</p>
    142 
    143 <p>         dp. ,      7&nbsp;    600&nbsp;dp,    ,         (     ),      ,     <code>large</code>  <code>sw600dp</code>.     ,     600&nbsp;dp,    .</p>
    144 
    145 <ul>
    146   <li><code>res/layout/main.xml</code>,   ( ):
    147 
    148 {@sample development/samples/training/multiscreen/newsreader/res/layout/onepane.xml all}
    149 </li>
    150   <li><code>res/layout-sw600dp/main.xml</code>,  :
    151 
    152 {@sample development/samples/training/multiscreen/newsreader/res/layout/twopanes.xml all}
    153 </li>
    154 </ul>
    155 
    156 <p> ,   ,       600&nbsp;dp,   <code>layout-sw600dp/main.xml</code> ( ),     &nbsp; <code>layout/main.xml</code> ( ).</p>
    157 
    158 <p> ,   Android-   3.2  <code>sw600dp</code>   ,    -   <code>large</code>.  ,        <code>res/layout-large/main.xml</code>,   <code>res/layout-sw600dp/main.xml</code>.       ,       .</p>
    159 
    160 
    161 <h2 id="TaskUseAliasFilters">  </h2> 
    162 
    163 <p> Smallest-width     Android 3.2    .       -     (small, normal, large  xlarge). ,                7- ,     ,   :</p>
    164 
    165 <p><ul>
    166 <li><code>res/layout/main.xml:</code>  ;</li>
    167 <li><code>res/layout-large:</code>  ;</li>
    168 <li><code>res/layout-sw600dp:</code>  .</li>
    169 </ul></p>
    170 
    171 <p>   :       Android 3.2  ,            Android.</p>
    172 
    173 <p>         ,  . ,    :</p>
    174 
    175 <ul>
    176 <li><code>res/layout/main.xml</code> ( );</li>
    177 <li><code>res/layout/main_twopanes.xml</code> ( ).</li>
    178 </ul>
    179 
    180 <p>    :</p>
    181 
    182 <p><ul>
    183 <li><code>res/values-large/layout.xml</code>:
    184 <pre>
    185 &lt;resources>
    186     &lt;item name="main" type="layout">&#64;layout/main_twopanes&lt;/item>
    187 &lt;/resources>
    188 </pre>
    189 </li>
    190 
    191 <li><code>res/values-sw600dp/layout.xml</code>:
    192 <pre>
    193 &lt;resources>
    194     &lt;item name="main" type="layout">&#64;layout/main_twopanes&lt;/item>
    195 &lt;/resources>
    196 </pre>
    197 
    198 </li>
    199 </ul></p>
    200 
    201 <p>    ,        .    ,    <PH>{@code main}</PH>    <PH>{@code main_twopanes}</PH>.       <code>large</code>  <code>sw600dp</code>,          Android    (   3.2 
    202 <PH>{@code large}</PH>,    &nbsp; <code>sw600dp</code>).</p>
    203 
    204 
    205 <h2 id="TaskUseOriQuali">  </h2> 
    206 
    207 <p>          ,        .  ,      News Reader       .</p>
    208 
    209 <p><ul>
    210 <li><b> ,  </b>:    .</li>
    211 <li><b> ,  </b>:    .</li>
    212 <li><b>   7- ,  </b>:     .</li>
    213 <li><b>   7- ,  </b>:     .</li>
    214 <li><b>   10- ,  </b>:   ( )   .</li>
    215 <li><b>   10- ,  </b>:   ( )   .</li>
    216 <li><b>,  </b>:     .</li>
    217 </ul></p>
    218 
    219 <p>      XML-   <code>res/layout/</code>.       ,    :</p>
    220 
    221 <p><code>res/layout/onepane.xml:</code></p>
    222 {@sample development/samples/training/multiscreen/newsreader/res/layout/onepane.xml all}
    223 
    224 <p><code>res/layout/onepane_with_bar.xml:</code></p>
    225 {@sample development/samples/training/multiscreen/newsreader/res/layout/onepane_with_bar.xml all}
    226 
    227 <p><code>res/layout/twopanes.xml</code>:</p>
    228 {@sample development/samples/training/multiscreen/newsreader/res/layout/twopanes.xml all}
    229 
    230 <p><code>res/layout/twopanes_narrow.xml</code>:</p>
    231 {@sample development/samples/training/multiscreen/newsreader/res/layout/twopanes_narrow.xml all}
    232 
    233 <p>      ,        ,   .   :</p>
    234 
    235 <p><code>res/values/layouts.xml</code>:</p>
    236 {@sample development/samples/training/multiscreen/newsreader/res/values/layouts.xml all}
    237 
    238 <p><code>res/values-sw600dp-land/layouts.xml</code>:</p>
    239 {@sample development/samples/training/multiscreen/newsreader/res/values-sw600dp-land/layouts.xml
    240 all}
    241 
    242 <p><code>res/values-sw600dp-port/layouts.xml</code>:</p>
    243 {@sample development/samples/training/multiscreen/newsreader/res/values-sw600dp-port/layouts.xml
    244 all}
    245 
    246 <p><code>res/values-large-land/layouts.xml</code>:</p>
    247 {@sample development/samples/training/multiscreen/newsreader/res/values-large-land/layouts.xml all}
    248 
    249 <p><code>res/values-large-port/layouts.xml</code>:</p>
    250 {@sample development/samples/training/multiscreen/newsreader/res/values-large-port/layouts.xml all}
    251 
    252 
    253 
    254 <h2 id="TaskUse9Patch">   nine-patch</h2>
    255 
    256 <p>       ,           . ,          .</p>
    257 
    258 <p>   ,   ,  ,       ,      .      nine-patch&nbsp;  PNG-,    ,    ,   .</p>
    259 
    260 <p>     ,    nine-patch.  .&nbsp;4     (  4&nbsp;  ),      nine-patch.</p>
    261 
    262 <img src="{@docRoot}images/training/button.png" />
    263 <p class="img-caption"><strong>&nbsp;4</strong>. <code>button.png</code></p>
    264 
    265 <p>     <ode
    266 href="{@docRoot}tools/help/draw9patch.html"><code>draw9patch</code></a>,     (  <code>tools/</code>).       ,   ,   .         ,    .&nbsp;5,   ,      .</p>
    267 
    268 <img src="{@docRoot}images/training/button_with_marks.png" />
    269 <p class="img-caption"><strong>&nbsp;5</strong>. <code>button.9.png</code></p>
    270 
    271 <p>      .         ,   ,       &nbsp; ,     .</p>
    272 
    273 <p>     <code>.9.png</code>.        ,    ,    nine-patch,    PNG-.</p>
    274 
    275 <p>      (  <code>android:background="&#64;drawable/button"</code>)      ,    .&nbsp;6.</p>
    276 
    277 <img src="{@docRoot}images/training/buttons_stretched.png" />
    278 <p class="img-caption"><strong>&nbsp;6</strong>.       <code>button.9.png</code>   nine-patch.</p>
    279 
    280