如何在Android应用中更改背景颜色


253

我希望能够以最简单的方式在我的android应用中将背景颜色更改为白色。

Answers:


348

您需要使用android:background属性,例如

android:background="@color/white"

另外,您需要在strings.xml中为白色添加一个值

<color name="white">#FFFFFF</color>

编辑:2012年11月18日

8字母颜色代码的前两个字母提供了alpha值,如果您使用的是html 6字母颜色表示法,则颜色是不透明的。

例如:

在此处输入图片说明


@Jonny的前两个字母提供了alpha值。
拉维·维亚斯

谢谢,但是使用十六进制值不是更容易吗?
the_prole 2014年

这将是非常容易的,但是不好的做法:)
Ravi Vyas 2014年

3
它是更容易使用的android:background="@android:color/white",它是预定义的,不需要您在string.xml中添加任何内容。
Greg Hewgill

您可以/res/layout/activity_main.xml添加将元素添加android:background到答案中的位置吗?
2014年

157

您也可以使用

android:background="#ffffff"

在xml布局或中/res/layout/activity_main.xml,或者您可以通过添加以下内容来更改AndroidManifest.xml中的主题

android:theme="@android:style/Theme.Light"

到您的活动标签。

如果要动态更改背景,请使用

YourView.setBackgroundColor(Color.argb(255, 255, 255, 255));

我认为这是正确的答案,因为它具有主题。单线不是最简单的方法,而是将整个样式传播到所有内容的方法。样式是即使复杂的更改也可以实现单行的方式。此外,样式也可根据喜好工作,与一般属性不同。(尽管仍然有一些奇怪之处)
Stephen J

60

最简单的方法

android:background="@android:color/white"

无需定义任何内容。它使用中的预定义颜色android.R


7
和以编程方式:context.getResources().getColor(android.R.color.white)
Paschalis

1
谢谢,这实际上是我想要的。就我而言,我必须用Java来做。
Armfoot

10

以编程方式以最简单的方式更改背景颜色(排他性-不更改XML):

LinearLayout bgElement = (LinearLayout) findViewById(R.id.container);
bgElement.setBackgroundColor(Color.WHITE);

唯一的要求是,activity_whatever.xml中的“ base”元素具有可在Java container中引用的ID(在这种情况下):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/container"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
     ...
</LinearLayout>

在检查了如何在代码中设置TextView文本颜色的各种可能性之后,在这里回答的Paschalis和James在某种程度上使我想到了这个解决方案

希望它能对某人有所帮助!


4

这种方法对我有用:

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.layout.rootLayout);
relativeLayout.setBackgroundColor(getResources().getColor(R.color.bg_color_2));

在布局xml中设置ID

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rootLayout"
android:background="@color/background_color"

添加颜色值/color.xml

<color name="bg_color_2">#ffeef7f0</color>

3

最简单的方法是android:background="#FFFFFF"在layout.xml或中添加到主节点/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
   <TextView xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="10dp"
       android:textSize="20sp" 
       android:background="#FFFFFF">
   </TextView>

这不是一个好主意,因为它将导致不必要的GPU过度绘制(首先,将绘制窗口背景,然后在其顶部绘制TextView的背景)。请参阅:curious-creature.com/docs/android-performance-case-study-1.html
米洛什Černilovský

3

最好使用背景渐变,因为它不会增加应用程序图像的应用程序大小,这对于Android应用程序来说是毒药,因此请尽量少使用它,而不是使用一种颜色作为背景,而可以在一种背景中使用多种颜色。 在此处输入图片说明 在此处输入图片说明

在此处输入图片说明在此处输入图片说明


2

您可以在工作xml表中尝试:

android:background="@color/background_color"

1

在布局中,要更改背景,请使用此选项。

android:background="@color/your_color"

在程序中可以使用它。例如:Texview背景颜色

 TextView tvName = (TextView) findViewById(R.id.tvName);
 tvName.setBackgroundColor(getResources().getColor(R.color.your_color));

0

你可以这样尝试

android:background="@color/white"

0

另一种方法是,转到布局 ->您的.xml文件 -> 设计视图。然后转到组件树并选择要更改颜色的布局。在组件树下面有一个属性部分。在属性部分中选择背景(在图片部分1中)。然后单击图片中的第2部分。然后 将打开资源窗口。从选择颜色菜单。然后选择所需的颜色。在此处输入图片说明


0

您可以使用通常在内部指定的简单颜色资源

res/values/colors.xml.

<color name="red">#ffff0000</color>

并通过来使用它android:background="@color/red"。该颜色也可以在其他任何地方使用,例如作为文本颜色。以相同的方式在XML中引用它,或者通过以下方式在代码中获取它

getResources().getColor(R.color.red).

您还可以将任何可绘制资源用作背景,android:background="@drawable/mydrawable"用于此目的(这意味着9patch可绘制对象,普通位图,形状可绘制对象..)。


0

有时,文本的颜色与背景相同,尝试将android:background =“#CCCCCC”应用于listview属性,您将看到它。


0

android:background =“#64B5F6”
您可以根据自己的规范或需要,根据自己的使用方式来更改'#'之后的值。
这是一个示例代码:

<TextView
        android:text="Abir"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:background="#D4E157"  />

谢谢 :)



0

如果您想为整个活动添加背景色

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#1de9b6"
    tools:context="com.example.abc.myapplication.MainActivity">
 </RelativeLayout>

如果您想使用背景视图

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Andrios"
    android:background="@color/colorAccent" />

希望这可以帮助!



0

我希望能够以最简单的方式在我的android应用中将背景颜色更改为白色。

问题是“最简单的方法”,所以就在这里。

设置parentViewStyle所有父视图。像大多数活动的父视图,片段和对话框一样。

<LinearLayout style="@style/parentViewStyle">

  ... other components inside

</LinearLayout>

只要把这种风格放进去 res>values>styles.xml

<style name="parentViewStyle">
    <item name="android:layout_height">match_parent</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:background">@color/white</item> // set your color here.
    <item name="android:orientation">vertical</item>
</style>

通过这种方式,您将来不必多次更改背景颜色。


0

对于Kotlin而言,不仅如此,

@颜色/

您可以快速,简单地选择所需的任何内容:

android:background="@color/md_blue_900"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.