📜  Android 中的 GradientDrawable

📅  最后修改于: 2022-05-13 01:58:45.161000             🧑  作者: Mango

Android 中的 GradientDrawable

现代应用程序的用户界面 (UI) 一直在改进。设计师正在尝试各种样式和颜色组合,以查看哪些最适合 Android 应用程序。 GradientDrawable是当今常用的 Android 的关键组件。

什么是渐变可绘制对象?

GradientDrawable 是可绘制的,具有可用于按钮、背景等的颜色渐变。让我们从一个简单的例子开始,在 Android 中创建一个带有水色背景的按钮:

这可以通过以下方式实现:

XML


XML


   


Kotlin
val gfgGradient = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
    intArrayOf(
        0XFFD98880.toInt(),
        0XFFF4D03F.toInt(),
        0XFF48C9B0.toInt()
    ))


Kotlin
val gfgButton: Button = findViewById(R.id.gfgButton)
gfgButton.background = gradientDrawable


Kotlin
val gfgGradient = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
    intArrayOf(
        0XFFD98880.toInt(),
        0XFFF4D03F.toInt(),
        0XFF48C9B0.toInt(),
        0XFF2C3E50.toInt(),
        0XFFAF7AC5.toInt()
    ))


如果你想要类似的东西怎么办:

为此需要渐变。

有两种方法:

#1。使用 XML 可绘制资源

在drawable包中新建文件gfg color drawable.xml,输入如下代码:

XML



   

我们使用了 标签并添加了三个颜色代码:startColor、centerColor 和 endColor。

最后,启动应用程序!

#2。可绘制渐变

使用 GradientDrawable,我们可以通过编程实现相同的功能。在您的活动中创建 GradientDrawable。

科特林

val gfgGradient = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
    intArrayOf(
        0XFFD98880.toInt(),
        0XFFF4D03F.toInt(),
        0XFF48C9B0.toInt()
    ))

在本例中,方向是 TOP BOTTOM(对应于我们之前在 XML 中添加的 45)。我们还使用了与以前相同的三种颜色。然后,使这个 gradientDrawable 成为按钮的背景:

科特林

val gfgButton: Button = findViewById(R.id.gfgButton)
gfgButton.background = gradientDrawable

颜色 1 占据整个空间的一半(50%),而其他两种颜色则平均覆盖剩余空间。 (每个贡献 25%)。这对于 XML 是不可能的。这就是 GradientDrawable 真正强大的地方。为了实现上述结果,我们可以执行以下操作:

val gfgGradient = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
    intArrayOf(
        0XFFD98880.toInt(),
        0XFFD98880.toInt(),
        0XFFF4D03F.toInt(),
        0XFF48C9B0.toInt()
    ))

这对于 XML 也是不可能的,但是使用 GradientDrawable 很简单,如下所示:

科特林

val gfgGradient = GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
    intArrayOf(
        0XFFD98880.toInt(),
        0XFFF4D03F.toInt(),
        0XFF48C9B0.toInt(),
        0XFF2C3E50.toInt(),
        0XFFAF7AC5.toInt()
    ))

要记住的事情

一、定位:

  • 它可以是 GradientDrawable 枚举中定义的任何方向。
  • 方向。在我们的示例中使用了 LEFT RIGHT。 TOP BOTTOM、TR BL、RIGHT LEFT 和其他方向也是可能的。它们是不言自明的。

2.调色板:

  • 我们必须在此处提供一组十六进制颜色值。
  • 对于值 0XFFD98880,
  • 0X – 表示十六进制数
  • FF – 将应用于颜色的 alpha 值。 Alpha 的范围可以从 0 到 100。在这种情况下,FF 表示 100% 的 alpha
  • D98880 – 十六进制颜色代码 RRGGBB 由该值表示。