Xml定义的形状不会显示

时间:2010-12-29 09:26:24

标签: android

最近我发现我可以在xml文件中定义形状。到目前为止,我使用九个补丁图像来创建自定义按钮等。当我尝试使用xml定义的形状时,它没有用。没有任何shaps,也来自作为示例提供的stackoverflow没有出现。我已经看到有人已经有类似的问题,但最终它在一个实际的设备上工作。在我的情况下它没有。

这是我尝试过的navigation_bar.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
        android:angle="270"/>
<padding android:left="7dp" android:top="7dp"
        android:right="7dp" android:bottom="7dp" />
<corners android:radius="8dp" />

然后用于:

 <TextView
        android:id="@+id/main_navigation_bar"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"        
        android:background="@drawable/navigation_bar"/>

背景保持默认/黑色,不显示任何内容。

我在这里遗漏了什么吗?我也看了ApiDemos,官方文档,没有找到任何解决我问题的方法。

留下九张补丁图片会更好吗?

感谢您的回复。

当用代码调整一点时,我注意到了奇怪的行为。我的IDE是IntelliJ。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:visible="true"
    android:shape="rectangle">
<gradient
    android:startColor="#FF89B4EE"
    android:endColor="#FF5791E6"
    android:type="linear"
    android:angle="90"/>
<size
    android:height="fill_parent"
    android:dfv="fill_parent" />

我做了一个故意的错字和代码编译。看起来形状被忽略或其他什么。有人注意到了类似的东西吗?

2 个答案:

答案 0 :(得分:0)

你试过把形状的大小?也许是一个愚蠢的问题,但对我有用,我也写没有大小的形状,没有“形状矩形”......

类似这样的事情

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#FF89B4EE"
        android:endColor="#FF5791E6" 
        android:type="linear" 
        android:angle="90"/>
</shape>

也许你可以阅读here android xml形状元素的完整文档。 欢呼声

答案 1 :(得分:0)

您的navigation_bar.xml是否在顶部有xml版本标头?那就是:

<?xml version ="1.0" encoding="utf-8"?>

我相信你可能会这样做;我不知道IntelliJ,但没有它就不会构建Eclipse。但是,从不伤害检查简单的解决方案。 :)