如何适当地适合按钮大小

时间:2016-05-12 19:41:10

标签: android android-layout

我有以下布局,其中包含按钮:

enter image description here

我正面临下一个问题:

  1. 左侧的前两个按钮与布局右侧的按钮大小不相等。
  2. 为什么右侧的按钮会改变背景颜色?我希望它们具有默认的背景颜色,如左边的颜色,或者如何将它们设置为不同的背景颜色,还包含图像?
  3. 对于前两个按钮,如何调整图像大小,以便我的文本水平设置。
  4. 您可以在下面找到我的代码:

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/defaultOptionsBackground"
                android:orientation="horizontal">
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="5.0"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="499"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/ic_place_white_48dp"/>
            </LinearLayout>
    

    在以下链接中,您可以找到图标: https://design.google.com/icons/index.html#ic_place

3 个答案:

答案 0 :(得分:1)

  1. 因为高度设置为wrap_content
  2. 因为在两个按钮上设置了背景,另外两个是drawableStart。更改android:background以更改为其他内容。 drawableStart将在文字
  3. 之前显示
  4. paddingEnd上添加与{4}相同尺寸的start
  5. 在我认为你想要的XML布局下面

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/defaultOptionsBackground"
                android:orientation="horizontal">
                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="5.0"
                    android:paddingEnd="48dp"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="499"
                    android:paddingEnd="48dp"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingEnd="48dp"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingEnd="48dp"
                    android:drawableStart="@drawable/ic_place_white_48dp"/>
            </LinearLayout>
    

答案 1 :(得分:0)

你的问题的大部分内容已由Budius回答。第二个问题的部分答案 - “如何设置按钮以获得不同的颜色,还包含图像?” - 您可以在按钮布局中使用此行android:backgroundTint =“@ android:color / holo_orange_dark”来设置不同的颜色。

答案 2 :(得分:0)

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


    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello" />


    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello" />


    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello" />


    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello" />


</LinearLayout>