Лучшие практики для получения весов макета для идеального выравнивания кнопок изображений во время активности Android? - PullRequest
0 голосов
/ 27 мая 2011

Мне трудно правильно выровнять кнопки изображений во время действия Android.Как видите, все изображения смещены и не выровнены должным образом.И это было после долгого времени корректировок.

Моя основная XML-раскладка:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="wrap_content" 
     android:adjustViewBounds="true"
    android:layout_weight="1"
        android:gravity="left" 
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"   
    android:layout_width="fill_parent" android:baselineAligned="true">
 <LinearLayout 
    android:orientation="horizontal"
    android:layout_height="158px" 
      android:adjustViewBounds="false"
    android:layout_weight="1"
        android:gravity="left" 
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"  
    android:layout_width="fill_parent" android:baselineAligned="true">  

    <ImageButton         
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"

        android:gravity="left" 
   android:adjustViewBounds="false"
  android:scaleType="fitStart"

        android:layout_gravity="left"
        android:background="@drawable/topfula_r1_c1" 
        android:layout_width="wrap_content"
       android:layout_height="wrap_content" 
       android:id="@+id/fluprepare"
       android:layout_weight="1"
       >

       </ImageButton>
    <ImageButton android:scaleType="fitCenter"        
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
   android:adjustViewBounds="false"
    android:layout_weight="1"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"
        android:gravity="left" 
        android:layout_gravity="left" android:background="@drawable/topfula_r1_c2" 
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:id="@+id/refreshflu" ></ImageButton>
    <ImageButton android:scaleType="fitEnd"        
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
         android:adjustViewBounds="false"
          android:layout_weight="1"
        android:layout_marginBottom="0dp"
        android:gravity="left" 
        android:layout_gravity="left" 
        android:background="@drawable/topfula_r1_c3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/quitprogram" ></ImageButton>

</LinearLayout>   
 <LinearLayout 
    android:orientation="horizontal"
    android:layout_height="159px" 
      android:adjustViewBounds="true"
    android:layout_weight="1"
        android:gravity="left" 
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"  
    android:layout_width="fill_parent" android:baselineAligned="true">  

    <ImageButton         
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"

        android:gravity="left" 
   android:adjustViewBounds="false"
  android:scaleType="fitStart"

        android:layout_gravity="left"
        android:background="@drawable/mid_r1_c1" 
        android:layout_width="wrap_content"
       android:layout_height="wrap_content" 
       android:id="@+id/prepareflu"
       android:layout_weight="1"
       >

       </ImageButton>
    <ImageButton android:scaleType="fitCenter"        
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
   android:adjustViewBounds="false"
    android:layout_weight="1"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"
        android:gravity="left" 
        android:layout_gravity="left" android:background="@drawable/mid_r1_c2" 
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:id="@+id/maincdc" ></ImageButton>
    <ImageButton android:scaleType="fitEnd"        
    android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
         android:adjustViewBounds="false"
          android:layout_weight="1"
        android:layout_marginBottom="0dp"
        android:gravity="left" 
        android:layout_gravity="left" 
        android:background="@drawable/mid_r1_c3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/configsettings" ></ImageButton>

</LinearLayout>   


<LinearLayout 
    android:layout_height="460px" 


   android:adjustViewBounds="false"
    android:layout_weight="1"
        android:gravity="left" 
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginBottom="0dp"
    android:layout_width="fill_parent" android:orientation="horizontal" android:baselineAligned="true">

<ImageButton android:id="@+id/informationcards" 
android:background="@drawable/bottommain" 
android:layout_gravity="center" android:layout_width="wrap_content" 
android:layout_height="wrap_content" android:layout_weight="1"></ImageButton>
</LinearLayout>
</LinearLayout>

Устройство Снимок экрана макета не выравнивается

Как вы можете заметить, существует большая проблема скнопки изображения, которые я изначально выложил в качестве теста.Сложно использовать 1 большое нижнее изображение, которое помещает 3 изображения в верхний и средний ряды, которые необходимо выровнять.

Если требуется дополнительная информация, пожалуйста, дайте мне знать.

[править]

android: baselineAligned = "true" android: layout_weight = "1" android: baselineAligned = "true"

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

Я бы хотел, чтобы вместо трех макетов в одном большем контейнере макетов казалось ужасным.. хорошая сладкая сетка от края до края?

Original not Spliced up

Spliced and ImageButton'd up awww

Уу-уу!Я решил это с большим количеством проб и ошибок!с кодом в 100 раз меньше.как вау.

1 Ответ

0 голосов
/ 26 июня 2011

фрагмент из моего файла main.xml, который я использовал в приведенном выше вопросе ...

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

   android:background="@drawable/mainlayoutbg2"

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

<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainlayoutbg2"
xmlns:android="http://schemas.android.com/apk/res/android"
android:clickable="true">
<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:height="100px">
    <Button
        android:clickable="true"
        android:height="100px"
        android:layout_width="wrap_content"
        android:id="@+id/Button02"
        android:layout_height="wrap_content"
        android:background="@null"
        android:text="     "
        android:width="100px"></Button>

    <Button
        android:clickable="true"
        android:height="100px"
        android:layout_width="wrap_content"
        android:id="@+id/refreshflud"
        android:onClick="refreshflu()"
        android:layout_height="wrap_content"
        android:background="@null"
        android:text="     "
        android:width="100px"></Button>

    <Button
        android:clickable="true"
        android:height="100px"
        android:layout_width="wrap_content"
        android:id="@+id/refreshflub"
        android:layout_height="wrap_content"
        android:background="@null"
        android:text="     "
        android:width="100px"></Button>
    <Button
        android:clickable="true"
        android:height="100px"
        android:layout_width="wrap_content"
        android:id="@+id/refreshfluc"
        android:layout_height="wrap_content"
        android:background="@null"
        android:text="     "
        android:width="100px"></Button>
    <Button
        android:height="100px"
        android:text="     "
        android:background="@null"
        android:width="100px"
        android:id="@+id/quitprogram"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button>

</TableRow>

Надеюсь, это сберёт несколько часов от чьих-то сеансов разработчиков.

...