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
我们使用了
GeekTip: We’ve also set the angle to 45 to indicate a TOP-BOTTOM orientation.
最后,启动应用程序!
#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 由该值表示。