有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java等间距固定大小按钮

我有这个xml文档。我想让这些93×93像素的按钮图像等间距排列。目前,重量设置使他们伸展并相互拥抱,因此没有空间。但如果我将“权重”设置为0,它们会彼此拥抱,但会占据屏幕的一半

顺便说一下,这是用于景观定位的

    <LinearLayout 安卓:id="@+id/LinearLayout" 安卓:layout_height="wrap_content"
  安卓:layout_width="fill_parent">
   <Button 
    安卓:background="@drawable/a" 
    安卓:layout_height="93px" 
    安卓:id="@+id/a"
    安卓:layout_width="93px" 
    安卓:layout_weight="1" 
    安卓:layout_marginLeft="20dip" 
    安卓:layout_marginTop="30dip"/>
  <Button 
    安卓:background="@drawable/b" 
    安卓:layout_height="93px" 
    安卓:id="@+id/b"
    安卓:layout_width="93px" 
    安卓:layout_weight="1"  
    安卓:layout_marginTop="30dip"/>

  <Button 
    安卓:background="@drawable/c" 
    安卓:layout_height="93px" 
    安卓:id="@+id/c" 
    安卓:layout_weight="1" 
    安卓:layout_width="93px"  
    安卓:layout_marginTop="30dip"/>
  <Button 
    安卓:background="@drawable/d" 
    安卓:layout_height="93px" 
    安卓:id="@+id/d"
    安卓:layout_width="93px" 
    安卓:layout_weight="1" 
    安卓:layout_marginRight="20dip" 
    安卓:layout_marginTop="30dip" />
    </LinearLayout>

a


共 (5) 个答案

  1. # 1 楼答案

    试试这个:

    <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:background="#000000"
            android:id="@+id/linearLayout01"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:orientation="horizontal"
        >
            <Button
                android:layout_width="0dp"
                android:id="@+id/btn1"
                android:layout_height="93px"
                android:layout_weight="1"
                android:layout_marginRight="5dp"
            ></Button>
            <Button
                android:layout_width="0dp"
                android:id="@+id/btn2"
                android:layout_height="93px"
                android:layout_weight="1"
                android:layout_marginRight="5dp"
            ></Button>
            <Button
                android:layout_width="0dp"
                android:id="@+id/btn3"
                android:layout_height="93px"
                android:layout_weight="1"
                android:layout_marginRight="5dp"
            ></Button>
            <Button
                android:layout_width="0dp"
                android:id="@+id/btn4"
                android:layout_height="93px"
                android:layout_weight="1"
            ></Button>
        </LinearLayout>
    
  2. # 2 楼答案

    我尝试将你当前的线性布局更新为以下内容,并使用了方形等距按钮——但它们不适合我的模拟器屏幕。所以在我的例子中,是你在左边和右边设置的边距把它们挤进去了

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/LinearLayout" 
       android:layout_height ="wrap_content"
       android:layout_width  ="fill_parent" 
       android:orientation   ="horizontal"
       android:layout_gravity="center_horizontal">
    
       <Button  
        android:id="@+id/takequiz"  
        android:text="take quiz"
        android:layout_height="93px"
        android:layout_width ="93px" 
        android:layout_marginTop ="30dip"/>
    
      <Button 
        android:id="@+id/random" 
        android:text="random"
        android:layout_height="93px" 
        android:layout_width ="93px" 
        android:layout_marginTop="30dip"/>
    
      <Button 
        android:id="@+id/search" 
        android:text="search"
        android:layout_height="93px"
        android:layout_width="93px" 
        android:layout_marginTop="30dip"/>
    
      <Button
        android:id="@+id/browse"
        android:text="browse"
        android:layout_height="93px" 
        android:layout_width="93px" 
        android:layout_marginTop="30dip" />
    
     </LinearLayout>
    

    你考虑过两排吗?我用TableLayout为一款声卡应用做了类似的事情。虽然现在我倾向于更多地使用RelativeLayout。这是表格代码

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/LinearLayout" 
       android:layout_height ="fill_parent"
       android:layout_width  ="fill_parent" >
       <TableRow
          android:layout_height ="wrap_content"
          android:layout_width  ="fill_parent" 
          android:gravity       ="center">    
           <Button  
            android:id  ="@+id/takequiz"  
            android:text="take quiz"
            android:layout_height="93px"
            android:layout_width ="93px" />    
          <Button 
            android:id  ="@+id/random" 
            android:text="random"
            android:layout_height="93px" 
            android:layout_width ="93px" />
        </TableRow> 
        <TableRow
          android:layout_height ="wrap_content"
          android:layout_width  ="fill_parent" 
          android:gravity       ="center">    
            <Button 
              android:id  ="@+id/search" 
              android:text="search"
              android:layout_height="93px"
              android:layout_width ="93px" />       
            <Button
              android:id  ="@+id/browse"
              android:text="browse"
              android:layout_height="93px" 
              android:layout_width ="93px"  />
        </TableRow>
     </TableLayout>
    
  3. # 3 楼答案

    只需在任意一个按钮上设置左边距或右边距

  4. # 4 楼答案

    LinearLayout没有“等间距”的固有概念。您可能会考虑使用为“仪表板”设计的布局,例如https://gist.github.com/882650

  5. # 5 楼答案

    解决办法很简单

    您必须将每个按钮保持在单独的线性布局中,并将每个线性布局的权重保持为1。现在,无论分辨率或方向如何,按钮的间距都是相等的

    例:

          <LinearLayout android:id="@+id/LinearLayout" android:layout_height="wrap_content"
          android:layout_width="fill_parent">
          <LinearLayout android:id=@+id/Button1Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center">  
           <Button 
            android:background="@drawable/a" 
            android:layout_height="93px" 
            android:id="@+id/takequiz"
            android:layout_width="93px" 
            android:layout_weight="1" 
            android:layout_marginLeft="20dip" 
            android:layout_marginTop="30dip"/>
    </LinearLayout>
    <LinearLayout android:id=@+id/Button2Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center">
          <Button 
            android:background="@drawable/b" 
            android:layout_height="93px" 
            android:id="@+id/random"
            android:layout_width="93px" 
            android:layout_weight="1"  
            android:layout_marginTop="30dip"/>
    </LinearLayout>
    <LinearLayout android:id=@+id/Button3Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center">
    
          <Button 
            android:background="@drawable/c" 
            android:layout_height="93px" 
            android:id="@+id/search" 
            android:layout_weight="1" 
            android:layout_width="93px"  
            android:layout_marginTop="30dip"/>
    </LinearLayout>
    <LinearLayout android:id=@+id/Button4Parent" android:layout_height="wrap_content" android_width="wrap_content" android:weight="1" gravity="center">
    
          <Button 
            android:background="@drawable/d" 
            android:layout_height="93px" 
            android:id="@+id/browse"
            android:layout_width="93px" 
            android:layout_weight="1" 
            android:layout_marginRight="20dip" 
            android:layout_marginTop="30dip" />
            </LinearLayout>
    </LinearLayout>