Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理Android平台默认样式_Android_Android Widget - Fatal编程技术网

处理Android平台默认样式

处理Android平台默认样式,android,android-widget,Android,Android Widget,我正在开发一个Android应用程序,它需要在一个APK中支持多种平台版本。在过去,虽然Android版本之间的风格略有变化,但它没有破坏任何布局 随着Android 4.0(冰激凌三明治)的发布,系统默认样式发生了显著变化,新部件的透明背景使得无法读取某些颜色方案中的文本: 安卓2.3.3 Android 4.0(与APK完全相同) 因为4.0布局有一个透明的背景,所以不可能看到黑色文本 有没有简单的方法来处理这些默认样式的更改而不为每个基本的android小部件创建自定义样式?或者可以在

我正在开发一个Android应用程序,它需要在一个APK中支持多种平台版本。在过去,虽然Android版本之间的风格略有变化,但它没有破坏任何布局

随着Android 4.0(冰激凌三明治)的发布,系统默认样式发生了显著变化,新部件的透明背景使得无法读取某些颜色方案中的文本:

安卓2.3.3

Android 4.0(与APK完全相同)

因为4.0布局有一个透明的背景,所以不可能看到黑色文本


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

很早以前的主题就存在了。您是否在应用程序中设置主题?如果没有,它将转到设备默认主题

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

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

更多选择:

如果您想支持全息主题,那么首先为全息和另一个非全息选择一次父主题,然后通过在代码中选择适当的主题

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>);
if(Build.VERSION.SDK\u INT>10)

setTheme(Setting Theme.Black)确实恢复为2.3.3样式,但它也删除了ICS特有的功能,如新的操作栏标题/菜单。