我正在尝试使用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
两者都有一些解决方案,但我不适合我。解决方案是创建一个有两种颜色的简单栏,但我想创建一个按钮,其边缘也有一些角。 我也不能在我的应用程序中使用原始图像,因为我需要务实地更改其颜色。 有任何机构对如何在渐变中添加百分比有所了解吗?
答案 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>
这里的诀窍是添加centerColor
和centerY
并修改它的中心。这将允许您修改转换发生的位置。