我正在开发一个需要在单个APK中支持各种平台版本的Android应用程序。在过去,尽管Android版本之间的风格略有改变,但它没有打破任何布局。
随着Android 4.0(Ice Cream Sandwich)的发布,系统默认样式发生了显着变化,新小部件的透明背景使得无法在某些配色方案中阅读文本:
Android 2.3.3
Android 4.0(完全相同的APK)
由于4.0布局具有透明背景,因此无法看到黑色文本。
有没有简单的方法来处理这些默认样式更改而无需为每个基本的Android小部件创建自定义样式?或者是否可以在Android 4.0中请求较旧的系统主题?我试图避免在运行时检测系统版本并更改字体颜色。
答案 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