在android活动期间获得布局权重以完美对齐图像按钮的最佳实践?

在android活动期间获得布局权重以完美对齐图像按钮的最佳实践?,android,xml,layout,imageview,scale,Android,Xml,Layout,Imageview,Scale,在android活动中,我很难正确对齐图像按钮。正如您所看到的,所有图像都发生了移动,并且没有正确对齐。那是在经过长时间的调整之后 我的主要XML布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:lay

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

正如您所看到的,我最初作为测试列出的imagebuttons有一个很大的问题。使用1个大的底部图像,将需要对齐的顶部和中间行中的3个图像向上推是很困难的

如果需要更多的细节,请告诉我

[编辑]

android:baselineAligned=“true” android:layout_weight=“1” android:baselineAligned=“true”

只是一场噩梦而已。这就像黑魔法,让它与多个图像和布局,所有都必须是边缘到边缘的完美

我很乐意,而不是把3个布局都放在一个更大的布局容器中,这看起来很糟糕。。边到边的漂亮的甜网格


呜呜!我用大量的尝试和错误解决了它!代码减少100倍。就像哇。

我在上面的问题中使用的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>


我希望这能减少其他人在开发会议上的时间。

这看起来不太合适。您希望额外的空间从何而来?看起来顶部布局高度有点偏离。这就把它扔掉了。。而且看起来底部的大图可能太大了。。由于底部图像看起来几乎要平铺…您可以在以下位置看到固定布局的视频:)这是一个很好的词,“固定”!:)由于您的问题(和评论)中的投票鼓励,这几乎被作为垃圾邮件删除,请不要再这样做。此外,如果您提供解决方案作为答案并接受它,这将有助于我们从未回答的问题列表中删除此问题。如果您将所有按钮高度设置为100像素,您知道这在每个设备上看起来会有所不同吗?尝试100dip以获得更好的跨设备兼容性是的!不错!用于格式化源的thx。我正打算这么做。:)我想我已经把px调到了低档。接得好。