масштабирование в Android - PullRequest
       30

масштабирование в Android

0 голосов
/ 09 марта 2011

Я недавно пытался написать макет для Android-приложения. Сначала я отладил его с реальной трубкой, и раскладка выглядела нормально. Однако позже я попытался запустить его на эмуляторе, но с другим разрешением. Тогда это не помещается на экране. Ширина выглядит хорошо, но высота нет. Разрешение моего телефона 480х800. Может ли это иметь отношение к соотношению сторон. У меня есть все мои размеры в дп. Некоторые из разрешений эмулятора выглядят нормально, а другие нет. Разве Android не должен масштабировать его самостоятельно?

Вот посмотрите на файл макета:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <RelativeLayout
  android:id="@+id/RelativeLayout1"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <LinearLayout
       android:orientation="vertical"
       android:layout_width="0px"
          android:layout_height="0px"
          android:focusable="true"
          android:focusableInTouchMode="true"/>
  <EditText
   android:id="@+id/SetAddr"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="@string/StartServer">
  </EditText> 
  <LinearLayout
   android:orientation="horizontal"
   android:id="@+id/LinearLayout2"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/SetAddr"
   android:gravity="center_horizontal">
   <Button
    android:id="@+id/PingStart"
    android:layout_width="@dimen/StartButtonWidth"
    android:layout_height="@dimen/StartButtonHeight"
    android:layout_below="@id/SetAddr"
    android:text="@string/Start"
   />

   <Button
    android:id="@+id/PingStop"
    android:layout_width="@dimen/StopButtonWidth"
    android:layout_height="@dimen/StopButtonHeight"
    android:layout_below="@id/SetAddr"
    android:layout_toRightOf="@id/PingStart"
    android:text="@string/Stop"
   />   
  </LinearLayout>
  <TextView

   android:id="@+id/PingResults"
   android:layout_width="@dimen/ResultsViewWidth"
   android:layout_height="@dimen/ResultsViewHeight"
   android:layout_below="@id/LinearLayout2"
   android:textColor="#000"
   android:background="#FFF"
   android:layout_centerHorizontal="true"
   android:scrollbars="vertical"
   />
  <LinearLayout
   android:orientation="horizontal"
   android:id="@+id/LinearLayout3"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/PingResults"
   android:gravity="center_horizontal">

   <Button 
    android:id="@+id/PingStartTrace"
    android:layout_width="@dimen/OptionButtonWidth"
    android:layout_height="@dimen/OptionButtonHeight"
    android:text="@string/Trace" >
   </Button>   
   <Button 
    android:id="@+id/PingStartLookup"
    android:layout_width="@dimen/OptionButtonWidth"
    android:layout_height="@dimen/OptionButtonHeight"
    android:layout_toRightOf="@id/PingStartTrace"
    android:text="@string/Lookup" >
   </Button>
   <Button 
    android:id="@+id/PingStartWebget"
    android:layout_width="@dimen/OptionButtonWidth"
    android:layout_height="@dimen/OptionButtonHeight"
    android:layout_toRightOf="@id/PingStartLookup"
    android:text="@string/WebGet" >
   </Button>
   <Button 
    android:id="@+id/PingStartOptions"
    android:layout_width="@dimen/OptionButtonWidth"
    android:layout_height="@dimen/OptionButtonHeight"
    android:layout_toRightOf="@id/PingStartWebget"
    android:text="@string/Options" >
   </Button>   
  </LinearLayout>   
 </RelativeLayout>    
</LinearLayout>

Файл размеров:

<resources>
    <dimen name="StartButtonHeight">50dp</dimen>
    <dimen name="StartButtonWidth">250dp</dimen>
    <dimen name="StopButtonHeight">50dp</dimen>
    <dimen name="StopButtonWidth">60dp</dimen>
    <dimen name="ResultsViewWidth">290dp</dimen>
    <dimen name="ResultsViewHeight">330dp</dimen>
    <dimen name="OptionButtonHeight">50dp</dimen> 
    <dimen name="OptionButtonWidth">75dp</dimen>       
</resources>

В некоторых разрешениях я вижу только половину текста и никаких кнопок под ним.

...