2016-04-05 5 views
0

Screenshot of first image Screenshot of other phone У меня есть LinearLayout, RelativeLayout, LinearLayout и ImageView в .Так в основном целевой страницы моего приложения, несмотря использования дп мой выход не совпадает на всем устройстве. Существует скриншот двух разных телефонов. Заранее спасибоAndroid макет не соответствует различных устройств вместо использования дп

<LinearLayout 
     android:id="@+id/lb_LinearLayout" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <RelativeLayout 
     android:id="@+id/lb_Relative_HomeScreen" 
     android:layout_width="match_parent" 
     android:layout_height="450dp"> 
      <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="350dp"> 
      `` <ImageView 
       android:id="@+id/lb_Background_Image" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="fitXY" /> 
      </LinearLayout> 
      <TextView 
       android:id="@+id/lb_Welcome" 
       android:text="@string/welcome" 
       android:gravity="start" 
       style="@style/Heading2.yellow" 
       android:layout_width="match_parent" 
       android:layout_height="30dp" 
       android:layout_gravity="start|center_vertical" 
       android:layout_above="@+id/lb_Descrption" 
       android:layout_marginLeft="20dp" 
       /> 
... 
</RelativeLayout> 
</LinearLayout> 
+1

Где скриншоты? –

+0

Извините, что забыл добавить изображения .. теперь добавлено .. – user3275601

+0

Думаю, вам следует использовать 'Scroll View', чтобы заставить его работать со всеми устройствами. –

ответ

2

Вам необходимо создать различные файлы макетов для основных ведра плотности экрана и размеров экрана. Таким образом, вы сможете точно настроить макет, чтобы он выглядел последовательным на нескольких дисплеях.

Вы можете легко создать новый макет для конкретного ведром из окна предварительного просмотра:

  • Нажмите на эту иконку enter image description here в левом углу.
  • Затем выберите Create Other....
  • Появится всплывающее окно, затем выберите из Available Qualifiers пункт size для разных размеров экрана Density для разных ковшей плотности.
  • После того, как вы выбрали нужный элемент, нажмите клавишу >>, и вы можете выбрать соответствующее ведро для того, чтобы вы хотели создать новый файл макета.
  • После этого вы нажимаете ok, и студия Android создает для вас копию текущего макета и помещает его в соответствующую папку для вас, все, что вам нужно сделать, - это отредактировать его так, чтобы он выглядел так, как вы хотите. чтобы посмотреть на конкретный макет.
0

Вы должны использовать Scrollview так:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
<LinearLayout 
    android:id="@+id/lb_LinearLayout" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <RelativeLayout 
     android:id="@+id/lb_Relative_HomeScreen" 
     android:layout_width="match_parent" 
     android:layout_height="450dp"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="350dp"> 
      `` <ImageView 
      android:id="@+id/lb_Background_Image" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" /> 
     </LinearLayout> 
     <TextView 
      android:id="@+id/lb_Welcome" 
      android:text="@string/welcome" 
      android:gravity="start" 
      style="@style/Heading2.yellow" 
      android:layout_width="match_parent" 
      android:layout_height="30dp" 
      android:layout_gravity="start|center_vertical" 
      android:layout_above="@+id/lb_Descrption" 
      android:layout_marginLeft="20dp" 
      /> 
     ... 
    </RelativeLayout> 
</LinearLayout> 

И быть более совместим со всеми устройствами, попробуйте использовать «wrap_content» или «match_parent» по высоте и ширины. Если изображения заставляют вас объявлять dp в вашем коде, пожалуйста, перейдите по этой ссылке: https://developer.android.com/guide/practices/screens_support.html