【问题标题】:Java .xml creating a drawable button backgroundJava .xml 创建可绘制按钮背景
【发布时间】:2020-06-02 11:10:43
【问题描述】:

编程新手,3 周初学者。 我正在通过可绘制的 xml 制作一个带有堆叠矩形的按钮。

这是我的按钮 .xml 代码,非常简单:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#D5A04F"
    tools:context=".MainActivity">


    <android.support.design.widget.NavigationView
        <Button
            android:id="@+id/leftnavbar"
            android:layout_width="212dp"
            android:layout_height="279dp"

            android:layout_marginTop="16sp"
            android:layout_marginBottom="500sp"
            android:background="@drawable/rounded_rectangle"
             />
    </android.support.design.widget.NavigationView>


</android.support.constraint.ConstraintLayout>

这是我的可绘制 .xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingBottom="@dimen/mr_dialog_fixed_width_minor"
    android:paddingTop="@dimen/mr_dialog_fixed_width_major"
    >

    <item
        android:top="5sp"
        android:left="5sp"
        android:right="5sp"
        android:bottom="50sp">
        <shape android:shape="rectangle">
            <solid android:color="#D3AE71" />
            <corners android:radius="20sp"/>
        </shape>
    </item>


    <item
        android:top="30sp"
        android:left="30sp"
        android:right="30sp"
        android:bottom="600sp">s
            <shape android:shape="rectangle">
                <solid android:color="#E6E5E5" />
                <corners android:radius="20sp"/>
            </shape>
    </item>

    <item
        android:top="160sp"
        android:left="30sp"
        android:right="30sp"
        android:bottom="470sp">
        <shape android:shape="rectangle">
            <solid android:color="#E6E5E5" />
            <corners android:radius="20sp"/>
        </shape>
    </item>

    <item
        android:top="290sp"
        android:left="30sp"
        android:right="30sp"
        android:bottom="340sp">
        <shape android:shape="rectangle">
            <solid android:color="#E6E5E5" />
            <corners android:radius="20sp"/>
        </shape>
    </item>

    <item
        android:top="420sp"
        android:left="30sp"
        android:right="30sp"
        android:bottom="210sp"
        >
        <shape android:shape="rectangle">
            <solid android:color="#E6E5E5" />
            <corners android:radius="20sp"/>
        </shape>
    </item>

    <item
        android:top="550sp"
        android:left="30sp"
        android:right="30sp"
        android:bottom="80sp">
        <shape android:shape="rectangle">
            <solid android:color="#E6E5E5" />
            <corners android:radius="20sp"/>
        </shape>
    </item>
</layer-list>

drawable 中唯一显示的项目是第一个,其余矩形无法显示。 对原因的建议或指示将不胜感激。感谢您的时间和关注...

【问题讨论】:

    标签: java android xml drawable layer-list


    【解决方案1】:

    首先请不要将“sp”用于文本字体大小以外的内容。

    其次,请检查您的android:bottom 是否过大,例如600sp - 它们没有为各自的形状留下空间。

    【讨论】:

      【解决方案2】:

      你的按钮高度太短,把 android:layout_height="279dp" 改成 android:layout_height="700dp"

      【讨论】:

      • 我注意到扩展我正在制作可绘制对象的按钮,开始显示可绘制对象,除了它相对于原始可绘制对象的高度和宽度大小(到目前为止我无法更改)这就是原因它没有显示。我改用了“.png”,它起作用了......问题仍然是如何正确设置“可绘制”尺寸以使其以适当的大小出现在相关按钮上。