android - 具有背景颜色的自定义按钮

标签 android button custom-component

我想在屏幕顶部创建四个自定义按钮(在 iOS 中为 Roundedrects)。

使用带有形状标签的自定义 xml,我可以得到它。

自定义.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
<solid android:color="#F9FAFC" />
<corners android:radius = "20dp"/>
</shape>

我将其用作:

android:background = "@drawable/custom"

但我只获得了所有按钮的自定义 xml 中设置的颜色(灰色),这是不应该的。

我想为那个自定义按钮设置不同的 Hexa(#FF0000 ... ) 颜色。在这个网站上进行了大量研究之后,我认为提出一个问题会更好。

你们中的任何极客都可以指向链接或者请帮助我一些代码,如何实现上述要求。

请注意:我不需要按钮的三种状态:按下、聚焦、禁用。我已经有四个方形按钮。现在我想将它们创建为 Rounded Rect 形状以使其看起来很有吸引力。至于我无法在 drawable 文件夹中为 4 个按钮创建 4 个 CUSTOM 文件。因为将来我的要求可能会扩展到大约 8-10 个按钮甚至更多。*

谢谢。

最佳答案

你需要使用元素标签。这是一个包含按钮状态、纯色和渐变色、描边、填充和圆角半径的示例。您需要将其放入选择器标签中。

<item android:state_enabled="false" >
    <shape>
        <solid
            android:color="#474141" />
        <stroke
            android:width="1dp"
            android:color="#474141" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
<item android:state_pressed="true" >
    <shape>
        <solid
            android:color="#f3ae1b" />
        <stroke
            android:width="1dp"
            android:color="#f3ae1b" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
<item>
    <shape>
        <gradient
            android:startColor="#990000"
            android:endColor="#990000"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="#990000" />
        <corners
            android:radius="4dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

关于android - 具有背景颜色的自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16039202/

相关文章:

angular - 如何在页面上多次重用自定义 Angular2 组件?

jquery - 弹出引导确认问题

javascript - '错误 : `VideoPlayer` has no propType for native prop `VideoPlayerView.scaleY` of native type `number`

android - 如何防止 Cordova build 命令自动生成 settings.gradle

android - 关于android Activity 生命周期的愚蠢问题

javascript - 为什么 Button 组件在单击时改变位置?

java - 在按钮上添加图像图标?

java - JSF 生命周期和自定义组件

android - Android Studio 3.0在创建新项目时显示以下错误

java - 生成的 .apk 包含未使用的资源和未使用的类