【问题标题】:Android: Percentage in gradient drawable?Android:渐变绘制的百分比?
【发布时间】:2013-05-18 10:19:05
【问题描述】:

我想要一些类似 CSS 渐变的效果

-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0b7a1), color-stop(50%,#8c3310), color-stop(51%,#752201), color-stop(100%,#bf6e4e));

我的 android xml 可绘制代码如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <gradient
        android:startColor="@color/transparent"
        android:centerColor="#33b5e5"
        android:endColor="@color/transparent"
        android:angle="90"/>
</shape>

所以我想要实现的是添加这样的百分比:

<gradient
    android:startColor="@color/transparent"
    android:25%="#09c"
    android:centerColor="#33b5e5"
    android:75%="#09c"
    android:endColor="@color/transparent"
    android:angle="90"/>

我可以用什么方法吗?

【问题讨论】:

  • 您终于找到了实现这一目标的方法吗?

标签: android css drawable gradient


【解决方案1】:

不可能用百分比来做到这一点,但你可以使用重叠渐变来实现结果。

您需要稍微调整一下scaleY 和颜色以使其与您的示例相匹配,但方法应该很简单。您正在使用垂直偏移将多个透明 -> 颜色 -> 透明渐变分层。

这是一个实际的例子,我还添加了一个空白的白色基础层:

这是 XML

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape>
        <solid android:color="@android:color/white" />
    </shape></item>

    <item><shape>
        <gradient
            android:startColor="@android:color/holo_purple"
            android:centerColor="@android:color/transparent"
            android:endColor="@android:color/transparent"
            android:centerY="0.4"
            />
    </shape></item>

    <item><shape>
        <gradient
            android:startColor="@android:color/transparent"
            android:centerColor="@android:color/holo_orange_light"
            android:endColor="@android:color/transparent"
            android:centerY="0.4"
            />
    </shape></item>

    <item><shape>
        <gradient
            android:startColor="@android:color/transparent"
            android:centerColor="@android:color/holo_blue_light"
            android:endColor="@android:color/transparent"
            android:centerY="0.7"
            />
    </shape></item>

    <item><shape>
        <gradient
            android:startColor="@android:color/transparent"
            android:centerColor="@android:color/transparent"
            android:endColor="@android:color/holo_green_dark"
            />
    </shape></item>
</layer-list>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多