9

我正在尝试使用 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>

问题是我不知道如何添加渐变的开始百分比和结束百分比。我对此进行了一些搜索并找到了一些内容:

带两种颜色的背景?

按钮上的渐变和阴影

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

4

1 回答 1

14

这已经很老了,但没有答案,我认为我遇到了问题并找到了解决方法。

如果您只需要具有 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修改它的中心。这将允许您修改转换发生的位置。

于 2017-03-14T11:03:02.920 回答