Android应用程序背景颜色未设置

时间:2012-09-24 19:54:50

标签: java android

我最近开始使用Android应用。我不是编程菜鸟,我从2009年开始用Java编程,但这是我的第一个Android应用程序。我已经尝试过关于如何设置背景颜色的一些教程,但它根本不适用于我。我无法弄清楚我做错了什么。

在我的布局目录中,我有一些名为:main.xml和view_fact.xml的文件。它们都使用线性布局,我的LinearLayout标签如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_grey"
>

在我的“values”目录中,“strings.xml”的内容是:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Facts</string>
<color name="background_grey">#E8E8E8</color>
</resources>

但背景颜色与默认黑色没有变化。

我也尝试在我的AndroidManifest.xml文件中添加:“android:theme =”@ android:style / Theme.Light“”。

这些都没有用,有什么建议吗?

谢谢。

在我的view_fact.xml页面上,它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_grey"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Fact:"
android:padding="10dp"
android:textColor="#080808"
/>

<TextView 
android:id="@+id/factData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text=""
/>
<Button
android:id="@+id/anotherFactButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Another Fact"/>
</LinearLayout>

有趣的是,“factData”中的文本是灰色的,而上面文本视图中的文本:“Fact:”是白色的,我试图将它的颜色更改为红色,但它不起作用。它保持白色。

有什么建议吗?我还没有设法让这个工作;谢谢。

4 个答案:

答案 0 :(得分:0)

如果您想使用@ color / color_name ,您必须创建一个Color.xml文件,然后以您尝试使用它的方式访问它。

答案 1 :(得分:0)

原谅一些显而易见的问题,但是:你在Activity onCreate中调用setContentView(R.layout.main)吗?布局中还有其他东西填充了LinearLayout并覆盖了背景灰色吗?

答案 2 :(得分:-1)

查看pastie you linked in the comment我认为您需要在开始时删除<?xml version="1.0" encoding="utf-8"?>行。 Eclipse不会在布局中使用该xml根构建一个新创建的应用程序。

虽然我在Android开发者网站(for example)上找到的前两个例子很奇怪,但它包含了它

我有兴趣看看如果删除该行会发生什么......


在Eclipse中,如果我使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#E8E8E8"
>

然后背景颜色发生变化。

如果我将其更改为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@string/background_grey"
>

<string name="background_grey">#E8E8E8</string>添加到/res/values/strings.xml,后台更改。

如果我在布局中将其声明为android:background="@color/background_grey"并在strings.xml中将其<color name="background_grey">#E8E8E8</color>声明为

,这也有效

如果我设置了res / values / colors.xml&lt; =我使用了colors.xml(虽然你使用了color.xml)但是http://developer.android.com/guide/topics/resources/more-resources.html告诉我们文件名是任意的,你可以看到通过在strings.xml文件中工作的声明

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="background_grey">#E8E8E8</color>
</resources>

并将布局声明为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_grey"
>

那么背景也会改变......

如果你的行为不一样,那么就会有一些时髦的东西,或者你使用的是与上面简单例子不同的布局,好吧,那个布局中还有一些时髦的东西。

答案 3 :(得分:-1)

好的,我尝试了很多尝试设置背景颜色的方法,但没有一种方法可以正常工作。我现在遇到文本没有更新的问题。所以我要尝试重塑它。如果我还有问题,使用eclipse和ill会提出一个新问题。谢谢你的建议。