在Android中更改方向时如何更改背景颜色?

时间:2017-08-31 19:27:36

标签: android

我是Android Studio和appmaking的新手。我想知道如何在用户将设备从纵向模式切换到横向时更改背景颜色吗?

实施例: 肖像模式下的白色背景色, 横向模式下的绿色背景色,

2 个答案:

答案 0 :(得分:3)

您可以为“纵向”和“横向”提供不同的颜色,并使用相同的资源ID引用它们:

假设你有一个颜色资源,例如在res / values / colors.xml

<color name="my_background_color">#ffffff</color>

如果没有其他更具体的声明,此颜色将用作资源ID为R.color.my_background_color的默认颜色。

要覆盖设备方向“横向”的默认设置,您必须创建一个文件夹values-land作为values的兄弟。在此文件夹中,在此文件中创建文件colors.xml

<color name="my_background_color">#00ff00</color>

然后使用颜色作为布局的背景颜色:

android:background="@color/my_background_color"

另见Using configuration qualifiers

答案 1 :(得分:1)

更改onConfigurationChange上的颜色

  @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        findViewById(R.id.mainLayout).setBackgroundColor(Color.GREEN);
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        findViewById(R.id.mainLayout).setBackgroundColor(Color.WHITE);
    }
}