使用 shape drawable 作为我的背景 xml

Posted

技术标签:

【中文标题】使用 shape drawable 作为我的背景 xml【英文标题】:Using shape drawable as my background xml 【发布时间】:2009-08-14 06:36:17 【问题描述】:

如果有人可以帮助我使用如何使用 shape drawable 作为我的视图的背景 xml,我真的很感激。

这是我尝试过的: 但我从来没有得到颜色。无论我放置什么颜色属性,android 总是给我白色背景上的黑色文本。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <stroke android: android:color="#FBBB" />
            <solid android:color="#6000"/> 
</shape>

试过了,不行

<shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle"
            android:color="#6000>

</shape>

试过了,不行

<shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle"
            android:background="#6000>
</shape>

我用谷歌搜索这是我发现尝试的有限结果。

【问题讨论】:

您的形状示例在这里有效。您可能没有在 View 中正确设置 @n179911:请不要以这样的词开头:help in... 我们已经知道您正在寻求帮助 【参考方案1】:

颜色设置错误,必须指定4字节颜色,​​例如:#ffff8080

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#f0600000"/>
    <stroke android: android:color="#ffff8080"/>
    <corners android:radius="3dp" />
    <padding android:left="10dp" android:top="10dp"
        android:right="10dp" android:bottom="10dp" />
</shape>

【讨论】:

不清楚 9 个人如何将该答案列为所述问题的解决方案!见developer.android.com/guide/topics/resources/…。不需要 32 位颜色!此外,我还发布了使用 24 位颜色形状可绘制对象的应用程序。请参阅developer.android.com/guide/topics/resources/…。最后,我尝试了“已批准”的代码 - 它失败了! 道歉 - 我应该说“它不起作用” - 而不是“失败!” 感谢您的剪辑! :)【参考方案2】:

好的 - 我很确定我的问题与引发您的问题的原因相同,并且我已经找到了原因。

问题是资源定义冲突(特别是资源文件名)。例如,由于某种原因,您在项目的 /res/color/ 中放置了一个名为“drawable_bg.png”的文件;忘记了你做了这个(或者它是偶然发生的)。如果您随后尝试在名为“res/drawable/dialog_bg.xml”的项目中定义一个 Shape Drawable - PNG(来自“MyLib”)优先。由于您可以为不同的 DPI、外形尺寸、SDK 等提供许多“res”文件夹 - 很容易导致文件名冲突。这也可能发生在 Android 库项目中。如果您的项目对本身拥有资源的项目有任何依赖关系,则它们可能会导致冲突。正如我今天刚刚发现的那样,Eclipse 在许多情况下可以隐藏或不显示警告。

当这种情况发生时,很容易出现 Shape Drawable 未应用。由于“dialog_bg.png”可能不是为您的视图而设计的,因此您会得到意想不到的结果,并且很容易对真正发生的事情感到困惑。

解决此问题的最简单方法是重命名项目中的可绘制形状。如果问题出在 Android 库项目中的某个资源上,那么通过应用http://tools.android.com/recent/buildchangesinrevision14 中描述的推荐做法可能会找到更好的解决方案。

【讨论】:

非常感谢,我尝试了所有找到的疯狂选项,但没有任何帮助。只有形状文件重命名救了我。【参考方案3】:

这里似乎有几个问题。最大的一个似乎是您可以使用形状作为文本颜色的想法,这似乎没有意义。您可以使用颜色作为形状的背景,也可以将形状设置为视图的背景,但不能将形状设置为文本背景或前景。

另一件看起来错误的事情是,在您尝试的替代 XML 文件中,颜色值周围的结束引号丢失了,因此根本不应该编译。

【讨论】:

【参考方案4】:

您提供了错误的六色属性。 # 后面应该是八位数字。例如#00000000

【讨论】:

【参考方案5】:

试试这个

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<corners
    android:bottomLeftRadius="5dp"
    android:bottomRightRadius="5dp"
    android:radius="0.1dp"
    android:topLeftRadius="5dp"
    android:topRightRadius="5dp" />

<solid android:color="#Efffff" />

<stroke
    android:
    android:color="#25aaff" />

</shape>

【讨论】:

以上是关于使用 shape drawable 作为我的背景 xml的主要内容,如果未能解决你的问题,请参考以下文章

JAVA代码设置selector不同状态下的背景颜色

为啥我的Android Studio里新建的drawable的XML文件里没找不到shape这个选项.

Android Drawable - Shape Drawable使用详解(附图)

笔画没有应用于矩形到xml drawable用作android中的edittext背景

Android 应用开发中如何自定义 Drawable 背景?

Android 使用shape定义不同控件的的颜色背景色边框色