如何根据用户偏好更改RelativeLayout颜色?

时间:2017-02-28 22:36:14

标签: android android-layout android-studio android-xml android-theme

我有一项活动,我想根据用户偏好更改颜色。

我在styles.xml中创建了很多样式

<style name="Yellow" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">$ffff00</item>
    <item name="colorPrimaryDark">#000000</item>
    <item name="colorAccent">#ffff00</item>
</style>

<style name="Red" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#ff0000</item>
    <item name="colorPrimaryDark">#000000</item>
    <item name="colorAccent">#ff0000</item>
</style>

我的工具栏等等没问题......问题是我想用所选的colorPrimary颜色更改RelativeLayout背景。这是我的默认AppTheme颜色。

创建我的活动:

setTheme(R.style.Yellow);

myactivity.xml

  <RelativeLayout
            android:orientation="vertical" android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@color/colorPrimary">

如何根据黄色或红色设置myactivity relativelayout bkcolor(用户会选择一个)?

1 个答案:

答案 0 :(得分:1)

在color.xml资源中定义颜色

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

并将其设置为查看背景

RelativeLayout rl = (RelativeLayout)findViewById(R.id.rlid);
rl.setBackgroundColor(R.color.read)

或创建颜色选择器like this

<item name="colorPrimary">@color/red</item>