在 android xml 中制作 4 档渐变

Posted

技术标签:

【中文标题】在 android xml 中制作 4 档渐变【英文标题】:making a 4 stop gradient in android's xml 【发布时间】:2021-01-09 15:05:45 【问题描述】:

我尝试使用inkscape的网格渐变,但它似乎在android中不受支持,我需要这样的东西:

android 的矩形(或任何其他形状,如圆形)的 4 级渐变,基本上是 4 种渐变颜色的混合。我如何在安卓中做到这一点?或者至少是android支持的东西(illustrator的svg输出是android采用的)?

【问题讨论】:

我的 SVGAndroid 库应该能够渲染你扔给它的任何 Illustrator 文件。虽然它还不支持 SVG2 网格渐变...... @PaulLeBeau ,它是开源的吗?可以给我链接吗? 噢!我打错了自己图书馆的名字! AndroidSVG is here 【参考方案1】:

您可以使用多个渐变来近似它。这只是一个快速尝试接近的尝试。通过一些额外的调整,您可能会做得更好。

<svg  viewBox="0 0 100 100">
  <defs>
    <linearGradient id="grad1" x1="0" y1="1">
      <stop offset="0" stop-color="rgb(149,254,149)"/>
      <stop offset="1" stop-color="rgb(255,254,149)"/>
    </linearGradient>

    <radialGradient id="grad2" cx="0" cy="0" r="0.75">
      <stop offset="0" stop-color="rgba(254,151,149, 1)"/>
      <stop offset="1" stop-color="rgba(254,151,149, 0)"/>
    </radialGradient>

    <radialGradient id="grad3" cx="1" cy="1" r="0.75">
      <stop offset="0" stop-color="rgba(149,150,202, 1)"/>
      <stop offset="1" stop-color="rgba(149,150,202, 0)"/>
    </radialGradient>
  </defs>
  
  <rect   fill="url(#grad1)"/>
  <rect   fill="url(#grad2)"/>
  <rect   fill="url(#grad3)"/>
</svg>

【讨论】:

以上是关于在 android xml 中制作 4 档渐变的主要内容,如果未能解决你的问题,请参考以下文章

Android:res之shape制作圆角虚线渐变

Android 颜色渐变(gradient)的实现总结

如何在android中使用渐变阴影按钮制作渐变恒定发光?

android:背景在材料设计按钮组件中不起作用

Android 设置alpha值来制作透明与渐变效果的实例

Android中多个位置的具有多种颜色的渐变圆