我想,有些克隆活动from a set of slides on Android UI design的设计。但是我有一个非常简单的任务问题。
我已经创建的布局所示的图像中,并且头部处于TextView
一个RelativeLayout
。现在我想改变RelativeLayout
的背景颜色,但我似乎无法弄清楚如何。
我知道我可以在XML文件中的android:background
标签设置RelativeLayout
属性,但我该怎么把它设置为?我想定义一个新的颜色,我可以在多个地方使用。它是一个drawable
或string
?
另外我希望那里是一个非常简单的方法来这个从我必须失去了Eclipse的Android UI设计师之内?
我目前有点沮丧,因为这应该是与最大点击几下进行的活动。因此,任何帮助是非常赞赏。 :)
您可以使用simple color resources,指定平日里res/values/colors.xml
。
<color name="red">#ffff0000</color>
并通过android:background="@color/red"
使用。这种颜色可以在其他地方使用过,例如作为文本的颜色。参考它在XML以同样的方式,或通过getResources().getColor(R.color.red)
得到它的代码。
您也可以使用任何drawable resource为背景,使用android:background="@drawable/mydrawable"
这个(这意味着9patch绘项目,正常位图,形状可绘制..)。
以上答案是nice.You也可以是这样的程序,如果你想
首先,你的布局应该有一个ID。通过写它添加以下在res /布局/ *。xml的+id
线
<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>
然后,在你的Java代码,请以下更改。
RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);
除此之外,如果你有colors.xml定义的颜色,那么你也可以编程方式执行:
rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));
您可以使用android:background="#DC143C"
,或任何其他RGB值的颜色。我一直在使用这种方式的规定here没有问题,
该
res/values/colors.xml.
<color name="red">#ffff0000</color>
android:background="@color/red"
例如没有为我工作,但
android:background="#(hexidecimal here without these parenthesis)"
在相对布局元素属性为我工作。
如果你想快速改变颜色(和你没有十六进制数字记忆)Android有几个预设的颜色,你可以像这样访问:
android:background="@android:color/black"
还有,你可以选择从哪个是检验美好的东西出来很快有15种颜色,而你并不需要设置其他文件。
设置一个值/ colors.xml文件,并使用直六角像上面解释仍然可以工作。
科特林
linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))
要么
<color name="newColor">#f44336</color>
-
linearLayout.setBackgroundColor(ContextCompat.getColor(vista.context, R.color.newColor))
4种可能的方式,用一个你需要的。
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));
上述所有问题的答案都是静态的。我以为我会提供一个动态的答案。这两个文件将需要同步与布局和foo.xml
相当于对应于该activity_bar.java
Java类的相对R.layout.foo
。
在foo.xml
设置整个布局中的ID:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/foo" .../>
而在activity_bar.java
设置在onCreate()
颜色:
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);
...
}
...
}
我希望这有帮助。