在不使用渐变的情况下添加两种颜色作为背景

Posted

技术标签:

【中文标题】在不使用渐变的情况下添加两种颜色作为背景【英文标题】:Adding two colors as background without using gradient 【发布时间】:2014-07-25 08:00:55 【问题描述】:

我试图为我的视图应用阴影效果,并发现我可以使用渐变来做到这一点。

我创建了一个 XML 文件

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

这很好用,但我需要让它更像一个影子。 我需要的是删除渐变中的过渡效果,因为我只需要在一个视图中对角应用两种颜色。怎么办?

【问题讨论】:

你为什么不使用两个布局而不是一个,这样你就可以在每个布局上应用颜色而不使用任何形状。更容易 你能附上一张带有预期阴影的图片吗? @vokilam 添加了图片 如果你需要这样的背景Drawable,你不能使用xml Drawable,最简单的方法是写一个自定义的Drawable并覆盖它的draw()方法 【参考方案1】:

如果您希望它成为您视图的背景,为什么不将黑白图像.jpeg.png 保存在Drawables 中,并在需要时使用它来指定其尺寸和alpha(不透明度)参数?

【讨论】:

【参考方案2】:

在这种情况下,我建议使用九个补丁的可绘制对象

【讨论】:

以上是关于在不使用渐变的情况下添加两种颜色作为背景的主要内容,如果未能解决你的问题,请参考以下文章

如何使用渐变颜色设置 UINavigationbar?

在不移动背景颜色的情况下将图像居中对齐

iOS 绘制颜色渐变圆环

如何在情节提要中向原型 UITableViewCell 添加渐变背景颜色?

PyQt 在不重置样式的情况下更改 QPushButton 背景颜色

如何使用颜色划分创建渐变效果?