2013-03-25 4 views
1

В моем приложении я добавляю несколько изображений. Я использую dp для всех измерений. Когда я вижу тест в разных размерах, доступных в eclipse, я вижу, что на разных устройствах он отличается.Заполнение макета разного размера

enter image description here

(см леденец заполняется для различной длины).

Пожалуйста, дайте мне знать, избежать этого и создать подобный вид и ощущение во всех устройствах

Ниже раскладка.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:weightSum="15" 
android:orientation="vertical"> 

<LinearLayout 
    android:id="@+id/ll0" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="5" 
    android:orientation="horizontal" > 

       <LinearLayout 
       android:id="@+id/ll1" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_weight="4" 
       android:orientation="vertical" > 

        <LinearLayout 
        android:id="@+id/ll1A" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption1" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat" /> 
        </LinearLayout> 


        <LinearLayout 
        android:id="@+id/ll1B" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption2" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 

        <LinearLayout 
         android:id="@+id/ll1C" 
         android:layout_weight="3" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" > 

         <ImageButton 
         android:id="@+id/imOption3" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 
      </LinearLayout> 

       <LinearLayout 
       android:id="@+id/ll2" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_weight="4" 
       android:orientation="vertical" > 

        <LinearLayout 
        android:id="@+id/ll2A" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption4" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat" /> 
        </LinearLayout> 


        <LinearLayout 
        android:id="@+id/ll2B" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption5" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 

        <LinearLayout 
         android:id="@+id/ll2C" 
         android:layout_weight="3" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" > 

         <ImageButton 
         android:id="@+id/imOption6" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 
      </LinearLayout> 


      <LinearLayout 
       android:id="@+id/ll3" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_weight="4" 
       android:orientation="vertical" > 

        <LinearLayout 
        android:id="@+id/ll3A" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption7" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat" /> 
        </LinearLayout> 


        <LinearLayout 
        android:id="@+id/ll3B" 
        android:layout_weight="3" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
         <ImageButton 
         android:id="@+id/imOption8" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 

        <LinearLayout 
         android:id="@+id/ll3C" 
         android:layout_weight="3" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" > 

         <ImageButton 
         android:id="@+id/imOption9" 
         android:layout_width="90dp" 
         android:layout_height="90dp" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 
      </LinearLayout> 

      <LinearLayout 
       android:id="@+id/ll4" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_weight="3" 
       android:weightSum="9" 
       android:background="#FFFF99" 
       android:orientation="vertical" > 


      <LinearLayout 
       android:id="@+id/ll4A" 
       android:layout_alignParentLeft="true" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" > 
        <ImageView 
         android:id="@+id/ivDisplayArea" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:scaleType="centerCrop" 
         android:layout_gravity="center" 
         android:background="@drawable/repeat"/> 
        </LinearLayout> 
      </LinearLayout> 
</LinearLayout> 
<LinearLayout 
    android:id="@+id/ll5" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="10" 
    android:orientation="horizontal"> 
      <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:gravity="center" 
      android:background="#FF6633" 
      android:text="Reward Account " 
      android:textColor="#FFFFFF" 
      android:textStyle="bold" /> 

      <ImageButton 
       android:id="@+id/bReward1" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="10dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward2" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward3" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward4" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward5" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward6" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward7" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward8" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward9" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 

      <ImageButton 
       android:id="@+id/bReward10" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center" 
       android:layout_marginLeft="7dp" 
       android:background="@drawable/lollipop" /> 


</LinearLayout> 




</LinearLayout> 

ответ

1

Это на самом деле правильное поведение. Android работает над тем, чтобы графические элементы оставались одинаковыми физическими размерами независимо от плотности экрана или размера экрана.

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


Если вы предпочитаете для вашего экрана должны быть изложены таким образом, что она выглядит одинаково на всех устройствах, и масштабируется таким образом, что тот же внешний вид больше или меньше в зависимости от размера экрана, то есть два способа сделать это:

  1. Вместо использования Density-Independent-пикселы "dip" (или эквивалент "dp "), использование Scale-Independent-пикселы" sip" (или эквивалент "sp "- размер с системным размером шрифта) или" px "(для пикселов) для определения размеров ваших графических компонентов.
  2. Вместо добавления всего изображения в папку «res/drawable» добавьте изображения разных размеров с одинаковыми именами файлов для различных «res/drawable-ldpi», «res/drawable-mdpi», «res/drawable-mdpi», «res/drawable-mable» -hdpi "и " res/drawable-xhdpi ".

Вы должны будете экспериментировать с размерами изображения, чтобы получить это право, но отношения определяются здесь: Launcher Icons: Size and Format

+0

Я предпочитаю иметь такой же вид во всех устройствах, то есть экран должен выглядеть так, в телефоне, а также как таблетка. У нас есть какой-то вариант для этого. – iappmaker

+0

Конечно, есть варианты сохранения «похожего на телефон и планшет». См. Мои изменения для ответа выше. –

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