Bja*_*sen 188 android user-experience adt android-layout
我试图在Android UI设计上从一组幻灯片中克隆一个活动的设计.但是我遇到一个非常简单的任务问题.
我创建了如图所示的布局,标题是TextViewa RelativeLayout.现在我想改变背景颜色RelativeLayout,但我似乎无法弄清楚如何.
我知道我可以在XML文件android:background中的RelativeLayout标签中设置属性,但是我将其设置为什么?我想定义一种可以在多个地方使用的新颜色.是一个drawable还是一个string?
另外我希望在Eclipse Android UI设计器中有一个非常简单的方法,我必须要丢失它?
我目前有点沮丧,因为这应该是一个活动,最多只需点击几下.所以任何帮助都非常感谢.:)

小智 274
您可以使用通常在里面指定的简单颜色资源res/values/colors.xml.
<color name="red">#ffff0000</color>
Run Code Online (Sandbox Code Playgroud)
并使用此通过android:background="@color/red".这种颜色也可以在任何其他地方使用,例如作为文本颜色.以相同的方式在XML中引用它,或者通过代码获取它getResources().getColor(R.color.red).
您还可以使用任何可绘制资源作为背景,android:background="@drawable/mydrawable"用于此(这意味着9patch drawables,普通位图,形状drawables,..).
And*_*ler 88
上面的答案很好.如果你愿意的话,你也可以这样编程
首先,您的布局应该有一个ID.通过+id在res/layout/*.xml中编写以下行来添加它
<RelativeLayout ...
...
android:id="@+id/your_layout_id"
...
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后,在Java代码中进行以下更改.
RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);
Run Code Online (Sandbox Code Playgroud)
除此之外,如果你有colors.xml中定义的颜色,那么你也可以编程:
rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));
Run Code Online (Sandbox Code Playgroud)
小智 21
该
res/values/colors.xml.
<color name="red">#ffff0000</color>
android:background="@color/red"
Run Code Online (Sandbox Code Playgroud)
例子对我不起作用,但是
android:background="#(hexidecimal here without these parenthesis)"
Run Code Online (Sandbox Code Playgroud)
在相对布局元素中为我工作作为属性.
小智 19
如果你想快速改变颜色(并且没有记忆的十六进制数字),android有一些你可以访问的预设颜色,如下所示:
android:background="@android:color/black"
Run Code Online (Sandbox Code Playgroud)
有15种颜色可供选择,非常适合快速测试,而且您无需设置其他文件.
如上所述设置values/colors.xml文件并使用直接十六进制仍然有效.
4 种可能的方式,使用您需要的一种。
val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))
Run Code Online (Sandbox Code Playgroud)
<LinearLayout
android:background="@{@color/white}"
Run Code Online (Sandbox Code Playgroud)
或者更有用的声明-
<LinearLayout
android:background="@{model.colorResId}"
Run Code Online (Sandbox Code Playgroud)
<LinearLayout
android:background="#FFFFFF"
<LinearLayout
android:background="@color/white"
Run Code Online (Sandbox Code Playgroud)
LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
605923 次 |
| 最近记录: |