向渐变添加百分比

时间:2013-01-01 06:45:46

标签: android drawable gradient

我正在尝试使用xml渐变代码创建一个按钮。 (因为我是新用户无法上传图片:()此图片的边缘有两种颜色和角落。开始渐变的颜色将从所有渐变长度的15%开始,结束颜色以75%结束梯度长度。 我使用此代码创建两种颜色的渐变:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item  >
    <shape  android:shape="rectangle">
        <gradient
    android:angle="-45"
    android:startColor="#64bcfb"
    android:endColor="#2f8fd4"
     android:type="linear"/>

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

问题在于我不知道如何添加渐变的开始百分比和结束百分比。我对此有一些搜索,并且有些内容:

banded background with two colors?

Gradients and shadows on buttons

两者都有一些解决方案,但我不适合我。解决方案是创建一个有两种颜色的简单栏,但我想创建一个按钮,其边缘也有一些角。 我也不能在我的应用程序中使用原始图像,因为我需要务实地更改其颜色。 有任何机构对如何在渐变中添加百分比有所了解吗?

1 个答案:

答案 0 :(得分:9)

这是相当陈旧但没有答案,我认为我遇到了问题并找到了解决办法。

如果您只需要具有2种颜色,单个过渡和角落的渐变,则可以执行以下操作:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners
        android:bottomLeftRadius="10dp"
        android:bottomRightRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp" />
    <gradient
        android:angle="270"
        android:startColor="@android:color/transparent"
        android:centerColor="@android:color/transparent"
        android:centerY="0.65"
        android:endColor="@color/colorPrimary"
        android:type="linear" />
</shape>

这里的诀窍是添加centerColorcenterY并修改它的中心。这将允许您修改转换发生的位置。