使用形状可绘制作为我的背景XML。

27

我非常感激如果有人可以帮助我使用形状可绘制对象作为视图的背景XML。

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

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <stroke android:width="1dip" 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>

我尝试搜索了一下,但只找到了这些有限的结果。


你的形状示例在这里有效。你可能没有在视图中正确设置它。 - m_vitaly
4
请不要在标题中以“help in…”开头。我们已经知道您正在寻求帮助。 - Casebash
5个回答

44

你的颜色设置有误,必须指定4字节的颜色,例如:#ffff8080

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

11
有9个人如何将该答案评为解决所述问题的方式并不清楚!请参见http://developer.android.com/guide/topics/resources/more-resources.html#Color。不需要32位颜色!此外,我发布了使用24位颜色形状可绘制项的应用程序。请参见http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape。最后,我尝试了“已批准”的代码-它失败了! - Tenacious
2
抱歉 - 我应该说“它不工作”而不是“失败了!” - Tenacious
谢谢你的代码片段! :) - Lukas

5

好的-我相信我的问题与你的问题相同,并且我已经找到了它的原因。

问题在于冲突的资源定义(具体来说,是资源文件名)。例如,出于某种原因,您在项目中将名为“drawable_bg.png”的文件放在/res/color/中,并忘记了这一点(或者发生了意外)。如果您尝试在项目中定义一个名为“res/drawable/dialog_bg.xml”的形状可绘制对象,则PNG(来自“MyLib”)会优先。由于您可以针对不同的DPI、形态因素、SDK等拥有许多“res”文件夹,因此很容易出现文件名冲突。这也可能发生在Android库项目中。如果您的项目依赖于具有资源的项目,则它们可能会引起冲突。就像我今天刚发现的那样,在许多情况下,Eclipse可能会隐藏或无法显示有关此问题的警告。

当发生这种情况时,很容易出现形状可绘制对象未应用的情况。由于“dialog_bg.png”可能不适用于您的视图,因此会产生意外结果,很容易被困惑所困扰。

最简单的解决方法是在您的项目中重命名形状可绘制对象。如果问题出现在Android库项目中的资源上,则可以通过应用建议的做法来解决,如http://tools.android.com/recent/buildchangesinrevision14所述。


非常感谢,我尝试了所有疯狂的选项,但没有什么帮助。只有重命名形状文件才救了我。 - some.birdie

3

试一试

<?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:width="2dp"
    android:color="#25aaff" />

</shape>

3
您输入的十六进制颜色属性有误。正确格式应该是在#后面跟着八个数字,例如#00000000

3
似乎这里存在几个问题。最大的问题似乎是您认为可以使用形状作为文本颜色,但这似乎毫无意义。您可以使用颜色作为形状的背景,您可以将形状设置为视图的背景,但您不能将形状设置为文本背景或前景。
另一个看起来不对的地方是,在您尝试的其他XML文件中,颜色值周围的引号缺失,因此根本不应编译。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接