开发者

Best practices for getting layout weights to align imagebuttons perfectly during android activity?

I'm having a hard time aligning up my image buttons properly during a android activity. As you can see all the images are all shifted and not aligned properly. And that was after a long time of adjustments.

My main XML layout:

<?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="l开发者_运维知识库eft" 
        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>

Device Screen shot of layout not aligning

As you can see there is a issue big time with the imagebuttons that I have initialy laid out as a test. Using 1 large bottom image that pushes up 3 images in the top and middle rows that need to be aligned is difficult.

If any more detail is needed, please let me know.

[edit]

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

are just a nightmare to just have right. it is like black magic to get it all perfect with multiple images and layouts that all have to be edge to edge...

I would love to instead of having the 3 layouts all in one larger Layout container seems awful.. a nice sweet grid with edge to edge?

Best practices for getting layout weights to align imagebuttons perfectly during android activity?

Best practices for getting layout weights to align imagebuttons perfectly during android activity?

Whoo hoo! I solved it with lots of trial and error! with 100x less code. like wow.


a snippet from my main.xml file that I used in the above question...

you will see that it was not done with image buttons. and the beauty of it all is that there is zero chance of image miss alignments. as you will notice the

   android:background="@drawable/mainlayoutbg2"

is one file.. not a whole bunch of pieced up images that you pray will all block together with all there weights and alignments...

<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>

I hope this shaves off some hours from someone elses dev sessions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜