处理Android平台默认样式

时间:2011-12-17 03:44:18

标签: android android-widget

我正在开发一个需要在单个APK中支持各种平台版本的Android应用程序。在过去,尽管Android版本之间的风格略有改变,但它没有打破任何布局。

随着Android 4.0(Ice Cream Sandwich)的发布,系统默认样式发生了显着变化,新小部件的透明背景使得无法在某些配色方案中阅读文本:

Android 2.3.3

Android 2.3.3 visual

Android 4.0(完全相同的APK)

Android 4.0 visual

由于4.0布局具有透明背景,因此无法看到黑色文本。

有没有简单的方法来处理这些默认样式更改而无需为每个基本的Android小部件创建自定义样式?或者是否可以在Android 4.0中请求较旧的系统主题?我试图避免在运行时检测系统版本并更改字体颜色。

1 个答案:

答案 0 :(得分:0)

那里有较旧的主题。您是否在应用程序中设置了主题?如果不是,它将转到设备默认主题。

尝试为您的活动明确设置主题,如Theme.Black,Theme.Light等。使用主题作为基本/父主题,然后如果需要,您可以添加特定样式或覆盖一些默认值。

您可以在清单文件中设置活动的主题。

更多选项:

如果你想支持Holo主题,那么首先为Holo和另一个非holo选择你的父主题,然后在代码中选择适当的主题

if(Build.VERSION.SDK_INT > 10)
 context.setTheme(<res_id_of_holo_them); // or dont any thing if default theme works for u
else
 context.setTheme(<other_theme>);

setContentView

之前调用此方法