4

我最近开始开发一个 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

4 回答 4

0

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

于 2012-09-24T20:29:27.897 回答
0

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

于 2012-09-24T21:02:51.303 回答
-1

查看您在评论中链接的馅饼,我认为您需要<?xml version="1.0" encoding="utf-8"?>在开始时删除该行。Eclipse 不会在布局中使用该 xml 根目录构建新创建的应用程序。

虽然这很奇怪,因为我在 Android 开发者网站上找到的前两个示例(例如)包括它

我很想看看如果你删除那条线会发生什么......


如果我在 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"如果我在布局和<color name="background_grey">#E8E8E8</color> strings.xml中声明它,这也有效

如果我设置 res/values/colors.xml <= 我使用了 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"
>

然后背景也改变了......

如果它对您来说表现不一样,那么就会发生一些时髦的事情,或者您使用的布局与上面的简单示例不同,那么,该布局中发生了一些时髦的事情。

于 2012-09-24T21:57:54.060 回答
-1

好的,我尝试了很多不同的方法来尝试设置背景颜色,但都没有奏效。而且我现在遇到文本不更新的问题。所以我打算尝试重新制作它。如果我仍然遇到问题,使用 eclipse 和 ill 会提出一个新问题。感谢您的建议。

于 2012-09-27T21:29:21.523 回答