Java 某些android设备的背景颜色错误

Java 某些android设备的背景颜色错误,java,android,xml,android-build-flavors,Java,Android,Xml,Android Build Flavors,我正在开发一个android应用程序。我在我的资源中定义了如下颜色: <color name="toolbar_color">#ffcb00</color> #ffcb00 我已经在“相对布局”等布局中设置了这种颜色作为背景,并且这种颜色在大多数android设备中都能正确显示。但在三星S6310安卓4.2.1中,我遇到了一个问题。我的颜色不显示,android设备显示的不是这种颜色,而是透明的颜色。 我已经搜索过这个问题,解决方案是使用java代码为我的布局设置

我正在开发一个android应用程序。我在我的资源中定义了如下颜色:

  <color name="toolbar_color">#ffcb00</color>
#ffcb00
我已经在“相对布局”等布局中设置了这种颜色作为背景,并且这种颜色在大多数android设备中都能正确显示。但在三星S6310安卓4.2.1中,我遇到了一个问题。我的颜色不显示,android设备显示的不是这种颜色,而是透明的颜色。 我已经搜索过这个问题,解决方案是使用java代码为我的布局设置颜色。但是我有很多风格构建,我不想更改我的java代码

现在我有两个问题:

1-为什么会发生这种情况


2-这个问题的解决方案是什么?

好吧,用简单的术语回答你的问题

为什么?

这只是Android支持库的工作。Android支持库,现在它是向后兼容的,它应该处理这个问题。它应该使应用程序正确地读取这些资源。但有时情况并非如此。这主要是原因。 如果发生类似情况,您可以阅读更多关于如何设置资源的信息

解决办法 这有很多解决办法

  • 直接在XML中设置资源颜色,而不是引用资源

  • 您还可以使用
    JAVA-code
    设置资源颜色或资源

  • 它还指出

    android {
        ...
        defaultConfig {
            ...
            vectorDrawables.useSupportLibrary = true
        }
        ...
      }
    
  • gradle解决了这个问题。检查


    无论如何,最好是通过编程来实现。

    您可以使用Android Studio主题编辑器并尝试更改背景颜色。您可以在主题编辑器和上获得更多信息。

    如果是android版本,您应该检查版本并在那里设置颜色

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLYBEAN) {
    // Your required color
    } else {
    
    }
    

    如果这是android版本的问题,希望这能有所帮助。

    您有基于密度的资源吗?如果是,则为每个密度创建资源文件。看一看:谢谢你的回答。第一个和第三个答案不起作用,我不想用第二个答案。@Hamidrezashokohi没问题。我会四处寻找更多的解决方案。但是,第一个解决方案对我有效。