3

我对android资源有一个奇怪的问题。我在 Android 2.2 上创建了应用程序(android:minSdkVersion="8")。该应用程序工作正常。

当我在例如 Android 4.0 上安装应用程序时,该应用程序工作正常,但是在第一次运行时,一些资源发生了变化。

例如,我有一个名为 primary_color 的可绘制颜色,它指的是#FFFFFFhtml 颜色。安装后,系统呈现黑色而不是白色。在某些情况下@android:color/white呈现黑色。

强制关闭应用程序并重新启动应用程序可解决此问题。

请帮我解决这个问题。

4

2 回答 2

0

这是由 Android 版本 4.0 到 4.1.3 中的错误引起的,我一直在测试类似的问题,即仅在具有这些版本的设备上可绘制对象变为黑色,它不存在于 android 版本 > 4.2 的设备中。

我确定您在自己的研究中注意到了,但似乎没有正确记录,也没有官方解决方案,但我可以提供一些解决方法:

1)关闭硬件加速,我为我的问题使用了不同的解决方案,但已知这可以解决上述 Android 版本中图像的一些问题。如果您想为您的应用程序启用硬件加速,您可以通过将其添加到清单中的活动声明来禁用它以解决问题活动。

<activity
 android:name="activityName"
 android:hardwareAccelerated="false"/>

2)对于特定于您的示例的解决方案,请尝试将颜色设置为@android:color/transparent,这解决了我需要背景可绘制以保持白色的问题。

3) 请参阅此处:http ://code.google.com/p/android/issues/detail?id=34619以查看类似的记录错误,其中一些解决方案也可能适用于您的问题。

高温高压

于 2013-07-10T13:54:38.850 回答
0

我遇到了完全相同的问题!我在colors.xml上有这个

 <resources>
    <color name="white">#ffffffff</color>
 </resources>

在styles.xml上

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="android:windowBackground">@color/white</item>
</style>

问题是,当在活动中使用片段(包含 ListView)时,ListView 在第一次运行时显示白色作为背景(这是我需要的),但在第二次运行时,ListView 背景为黑色。该问题仅在 Android 4.0 上存在(我没有在 4.1 上测试)但在 Android 4.3、4.4、5 等上运行良好。

原来只有白色有问题,当使用白色以外的颜色时,没有黑色背景问题!

因此,由于我想要一个白色背景,并且我不想过度绘制具有多个背景,因此在 styles.xml 上将白色设置为 windowBackground 很重要,但同时它会导致黑色背景问题!

因此,作为解决方案,我创建了另一种颜色,它不是完全白色,而是白色

<resources>
    <color name="fakewhite">#fffefefe</color>
</resources>

在styles.xml上

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@color/fakewhite</item>
</style>

因此,简而言之,对于 ListView 等视图,颜色 #ffffffff 会转换为 #00000000,我也注意到 ScrollView 上的这种行为。这可能不是一个完美的解决方案,但它对我有用!

于 2015-05-24T19:42:49.770 回答