Android:按钮边框渐变

时间:2015-07-09 13:34:16

标签: android button border gradient

我正在尝试创建一个这样的按钮边框样式: enter image description here

所以我创建了一个drawable.xml并将2个矩形形状放在彼此的顶部,第二个2dp像这样小:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <gradient
                android:angle="135"
                android:endColor="#6cd0f4"
                android:startColor="#acd44d"
                android:type="linear" />

            <corners android:radius="5dp" />
        </shape>
    </item>
    <item
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="2dp">
        <shape android:shape="rectangle" >
            <solid android:color="#4267af" />

            <corners android:radius="3dp" />
        </shape>
    </item>
</layer-list>

这项工作正常,但我想让按钮透明,因此它采用其父视图的颜色。 任何人都知道如何创建类似的效果?九层补丁是否可以更灵活地完成这项工作?

3 个答案:

答案 0 :(得分:1)

我决定使用九张补丁图片。

答案 1 :(得分:0)

在哈希代码的开头添加#80。

android:color="#804267af"

开头的80是透明度的价值。 编辑:以下是透明度的值,在十六进制的开头插入两个字符以获得所需的百分比。

100% — FF

95% — F2

90% — E6

85% — D9

80% — CC

75% — BF

70% — B3

65% — A6

60% — 99

55% — 8C

50% — 80

45% — 73

40% — 66

35% — 59

30% — 4D

25% — 40

20% — 33

15% — 26

10% — 1A

5%  — 0D

0% —  00

您还可以使用以下背景属性

android:background="@android:color/transparent" 

但您无法在此明确提供任何所需的百分比值。

通过代码执行此操作的另一种方法是手动设置元素颜色的alpha值。

yourButton.getBackground().setAlpha(0);

希望这会对你有所帮助。

答案 2 :(得分:0)

您可以创建这样的视图,而不是创建两个矩形视图。我希望下面给出一个例子对你有帮助

<LinearLayout
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="#4178AA"
    android:padding="5dp">

    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/xxxxx"
        android:background="@drawable/test" />
</LinearLayout>

测试是你的矩形视图。这将为你提供与你添加的相同的形状