【问题标题】:Custom Button with Background color带有背景颜色的自定义按钮
【发布时间】:2013-04-16 14:02:39
【问题描述】:

我想在屏幕顶部创建四个自定义按钮(在 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 ... ) 颜色。经过对本网站的大量研究,我认为提出一个问题会更好。

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

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

谢谢。

【问题讨论】:

  • 如果你想创建四个不同颜色的按钮,创建 4 个不同的 xml 有自己的颜色代码
  • 你确定吗?我的意思是,如果我有 10 个或更多按钮,你会建议这样做吗?没有别的办法吗??
  • 如果您想拥有 10 个按钮,每个按钮都有自己的颜色和形状,那么您必须这样做。但我不确定你是否可以等到你从别人那里得到答案

标签: android button custom-component


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2013-06-24
    相关资源
    最近更新 更多