具有高度的自定义操作栏如何将背景设置为全屏

时间:2016-06-24 09:35:54

标签: android android-theme android-styles android-background

我知道如何在主题中设置120dp高度的自定义操作栏时,如何设置全屏背景颜色(我在应用程序启动时需要它)。 我的操作栏样式:

  <style name="MyActionBar"
     parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
   <item name="android:height">120dp</item>
   <item name="android:displayOptions"></item>
   <item name="android:background">#00000000</item>
  </style>

我想设置像这个操作栏“后面”的全屏颜色背景。这种风格有透明的背景,所以如果我可以设置一些颜色,它会看起来像我想要的,但我不知道如何......

5 个答案:

答案 0 :(得分:0)

在setContentView

之前添加这两行
requestWindowFeature(Window.FEATURE_NO_TITLE); 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);

答案 1 :(得分:0)

如果我理解正确,那么我相信你的意思是活动的主要背景颜色,正如你所说&#39;背后&#39;行动吧。

在您的活动的XML中,您应该看到类似于:

的内容
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" >

如果你追加android:backgroundColor="#000",那么你应该得到你正在寻找的结果(当然请用您选择的颜色替换#000)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:backgroundColor="#000" >

答案 2 :(得分:0)

您可以像这样设置布局的背景颜色:

 getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.background_color,null));

您应该在color.xml中定义background_color

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="background_color">#000000</color>
</resources>

答案 3 :(得分:0)

对于答案的人来说,但我觉得我很难解释我的问题。

请看这张图片

enter image description here

当应用程序加载时我可以设置我的主题样式背景颜色,这个颜色仅适用于动作栏中的位置(120dp就像样式),但我想在加载应用程序时在全屏上有颜色或图像背景。

我不知道在加载应用程序时如何设置此白色背景。

当我在我的样式主题中将动作栏背景设置为透明时,颜色与屏幕的其余部分相同,这就是为什么我认为当我将此白色改为“后面”并将动作栏背景设置为透明时会像我想的那样工作。

我希望现在我能清楚地解释一下我想做什么。我想在aplication加载时将背景设置为整个屏幕。

答案 4 :(得分:0)

我为我的问题找到了解决方案。我必须创建启动画面才能得到我想要的东西。 如果有人有类似的问题所以shoud创建启动画面。 要做到这一点,你必须:

  1. 为初始屏幕创建可绘制资源。
  2. 定义将显示可绘制资源的新主题。
  3. 向应用程序添加新活动,该活动将用作上一步骤中创建的主题定义的初始屏幕。
  4. 以下是一个简单的示例:https://www.bignerdranch.com/blog/splash-screens-the-right-way/