Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置Android布局元素的背景色_Android_Android Layout_User Experience_Adt - Fatal编程技术网

设置Android布局元素的背景色

设置Android布局元素的背景色,android,android-layout,user-experience,adt,Android,Android Layout,User Experience,Adt,我正试图克隆一个活动的设计。然而,我有一个非常简单的任务的问题 我已经创建了如图所示的布局,标题是RelativeLayout中的TextView。现在我想更改RelativeLayout的背景色,但我似乎不知道如何更改 我知道我可以在XML文件中的RelativeLayout标记中设置android:background属性,但是我应该设置什么?我想定义一种可以在多个地方使用的新颜色。它是可绘制的还是字符串 另外,我希望在EclipseAndroidUI设计器中有一种非常简单的方法来实现这一点

我正试图克隆一个活动的设计。然而,我有一个非常简单的任务的问题

我已经创建了如图所示的布局,标题是
RelativeLayout
中的
TextView
。现在我想更改
RelativeLayout
的背景色,但我似乎不知道如何更改

我知道我可以在XML文件中的
RelativeLayout
标记中设置
android:background
属性,但是我应该设置什么?我想定义一种可以在多个地方使用的新颜色。它是
可绘制的
还是
字符串

另外,我希望在EclipseAndroidUI设计器中有一种非常简单的方法来实现这一点,但我一定缺少这种方法

我现在有点沮丧,因为这应该是一个最多只需点击几下就可以完成的活动。因此,非常感谢您的帮助。:)


您可以使用android:background=“#DC143C”或任何其他RGB值作为您的颜色。我可以这样使用它,正如您可以使用的那样,通常在
res/values/colors.xml
中指定

<color name="red">#ffff0000</color>
#ffff0000
并通过android:background=“@color/red”使用此选项。此颜色也可用于其他任何地方,例如作为文本颜色。以同样的方式在XML中引用它,或者通过
getResources().getColor(R.color.red)
在代码中获取它


您也可以使用任何作为背景,使用android:background=“@drawable/mydrawable”(这意味着9patch drawables、普通位图、shape drawables等等)。

以上答案很好。如果您愿意,您也可以通过编程方式选择此选项

首先,您的布局应该有一个ID。通过在res/layout/*.xml中写入以下
+ID
行来添加它

<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>
除此之外,如果在colors.xml中定义了颜色,则还可以通过编程方式执行以下操作:

rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));


在相对布局元素中作为属性为我工作。

如果您想快速更改颜色(并且没有存储十六进制数字),android有一些预设颜色,您可以如下访问:

android:background="@android:color/black"
有15种颜色可供选择,适合快速测试,无需设置其他文件

设置values/colors.xml文件并使用上面解释的直十六进制仍然有效。

Android studio 2.1.2(或更早版本)将允许您从色轮中选择:

我通过在布局中添加以下内容来实现这一点:

android:background="#FFFFFF"

然后我点击FFFFFF颜色并点击出现的灯泡。

以上所有答案都是静态的。我想我会提供一个动态的答案。需要同步的两个文件是与布局相对的
foo.xml
,以及与此
R.layout.foo
对应的java类相对应的
activity\u bar.java

foo.xml
中为整个布局设置一个id:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>

我希望这能有所帮助。

Kotlin

linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))


4种可能的方法,使用你需要的方法

1.科特林
很有魅力,谢谢。你能给我指一下我应该在哪里读到这篇文章的参考资料吗?嗯,事实上:没有。只是搜索了文档,这是相当标准的android内容,但似乎没有真正的文档记录。dev站点上的教程和api示例都没有使用这一点。android doc在某些功能方面有些欠缺。我想我是在一些外部教程中偶然学会的。不过,通常浏览api示例和示例项目是个好主意。您可以在
ANDROID\u SDK\samples
文件夹中找到代码(适用于各种ANDROID版本)。整个api示例应用程序也预装在每个仿真器实例中。没有什么容易找到的。但我还是建议用xml手工编写东西。设计师最近改进了很多,但在我看来它仍然不可用。不仅某些选项有限,在实际设备上,布局有时看起来完全不同(特别是在使用引用的可绘制资源时。根据我的经验,这些资源无法正确缩放,甚至根本无法显示)。在设备或模拟器上测试布局。对于某些“默认”颜色,您可以使用以下语法:android:background=“@android:color/white”getResources()。getColor()现在已被弃用。-1因为我在问题中明确写道“我想定义一种可以在多个地方使用的新颜色”,因为我不想硬编码颜色值,而是将其定义为可以在多个位置使用的资源。@GMsoF:哦,它确实有效,但不能回答问题。您是否忘记用资源标记包装颜色标记?如果您希望它是动态的,我想您不能使用XML。+1,因为我需要在运行时根据状态标记对其进行更改;我还可以使用color.TRANSPARENT常量恢复原始颜色。@bjarefreund Hansen他承认其他答案,并提供了这个编程解决方案。不值得向下投票。@Bjarefreund Hansen,问题是如何设置背景,而不是如何定义颜色,正确阅读。如果问题就在这上面呢。我承认这一点,并告诉他“你也可以像这样去”……所以他可以去也可以不去。同样,它也可以帮助其他人,正如你所看到的那样。你能吗?@Bjarefreund Hansen用加号来补偿减号吗?你用什么软件画右边的图表?@lucas:我没有画图表,正如我在问题中提到的,它是从安卓UI设计的一组幻灯片上画出来的。请参阅问题中的链接。
android:background="#FFFFFF"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>
public class activity_bar extends AppCompatActivty {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foo);

            //Set an id to the layout
        RelativeLayout currentLayout = 
                    (RelativeLayout) findViewById(R.id.foo);

        currentLayout.setBackgroundColor(Color.RED);
        ...
    }
    ...
}
linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))
<color name="newColor">#f44336</color>
linearLayout.setBackgroundColor(ContextCompat.getColor(vista.context, R.color.newColor))
val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))
<LinearLayout
    android:background="@{@color/white}"
<LinearLayout
    android:background="@{model.colorResId}"
<LinearLayout
    android:background="#FFFFFF"

<LinearLayout
    android:background="@color/white"
LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));