2013-04-06 1 views
2

У меня проблема с позиционирующими элементами.android как позиционировать элементы для поддержки во всех устройствах

Что я хочу иметь это изображение на всех устройствах, независимо от размера экрана.

enter image description here

, что у меня есть это в двух разных размерах

enter image description hereenter image description here

Я хочу, чтобы мое TextViews и editTexts сохранить свои позиции в целях деятельности. ('Зеленый-синий-красный-желтый квадрат, содержащий изображение' Образ в ImageView)

и это мой layout.xml

 <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical"> 
       <TextView 
         android:layout_height="30dp" 
         android:layout_width="150dp" 
         android:layout_marginTop="60dp" 
         android:layout_marginLeft="100dp" 
         android:textSize="19dp" 
         android:textStyle="bold" 
         android:gravity="center" 
         android:text="@string/login_app_name"> 
       </TextView> 
       <RelativeLayout 
         android:layout_width="fill_parent" 
         android:layout_height="20dp" 
         android:layout_marginTop="128dp" 
         android:gravity="center_vertical"> 
          <TextView 
            android:layout_height="20dp" 
            android:layout_width="100dp" 
            android:layout_marginLeft="35dp" 
            android:textStyle="bold" 
            android:gravity="right|center_vertical" 
            android:text="@string/login_username"> 
          </TextView> 
          <EditText 
            android:layout_height="20dp" 
            android:layout_width="140dp" 
            android:layout_alignParentRight="true" 
            android:layout_marginRight="10dp" 
            android:background="@drawable/login_edit_text"> 
          </EditText> 
       </RelativeLayout> 
       <RelativeLayout 
         android:layout_width="fill_parent" 
         android:layout_height="20dp" 
         android:layout_marginTop="2dp"> 
          <TextView 
            android:layout_height="20dp" 
            android:layout_width="100dp" 
            android:layout_marginLeft="35dp" 
            android:textStyle="bold" 
            android:gravity="right|center_vertical" 
            android:text="@string/login_password"> 
          </TextView> 
          <EditText 
            android:layout_height="20dp" 
            android:layout_width="140dp" 
            android:layout_alignParentRight="true" 
            android:layout_marginRight="10dp" 
            android:background="@drawable/login_edit_text"> 
          </EditText> 
       </RelativeLayout> 

     </LinearLayout> 
    </RelativeLayout> 

Я подозреваю, проблема связана с этими paddings и полями, которые я использовал для позиционирования элементов. Но я не мог найти другого пути.

Есть ли способ, которым вы можете предложить мои элементы для поддержания своих позиций во всех размерах экрана?

ответ

0

Сделайте отдельные XML-файлы для разных устройств и поместите изображения отдельно для двух xml, чтобы соответствовать различным стандартным разрешениям. свяжите два отдельных класса для двух файлов XML и теперь на основе разрешения экрана вызывается любой из двух классов. Вы можете получить экран Рез с этим кодом:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

final int height = dm.heightPixels; 
final int width = dm.widthPixels; 

использовать если-то еще условие и выбрать класс для намерения

Смежные вопросы