确保某些属性(例如android:attr/textAppearanceMedium)在不同版本的android中工作的可移植方式是什么
目前,我正在使用theme确保某些属性(例如android:attr/textAppearanceMedium)在不同版本的android中工作的可移植方式是什么,android,Android,目前,我正在使用themetheme.Sherlock.Light.DarkActionBar 我正在应用?android:attr/textpearancemedium和?android:attr/textpearancesmall属性,用于列表视图中使用的TextView <TextView ... android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView ..
theme.Sherlock.Light.DarkActionBar
我正在应用?android:attr/textpearancemedium
和?android:attr/textpearancesmall
属性,用于列表视图中使用的TextView
<TextView
...
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
...
android:textAppearance="?android:attr/textAppearanceSmall" />
然而,对于果冻豆和姜饼,我有两种截然不同的效果
果冻豆(看起来很棒!)
姜饼(呃…)
有没有什么可移植的方法可以告诉我,当在浅色背景上使用textpearancemedium
和textpearancesmall
属性时,颜色应该是深色的。目前,姜饼的列表视图使用浅背景。因此,正确的字体颜色应为深色,以便文本可见。我知道您希望支持相应Android版本的本机外观,并希望避免覆盖默认颜色
“香草”姜饼版本可能看起来像你截图中的版本,但我也看到过设备制造商(如三星TouchWiz或HTC Sense)的GUI修改或自定义ROM覆盖这些颜色值。不仅是默认背景色,还有文本颜色
因此,您无法确保所有蜂窝状字体之前的版本都在下拉列表中显示白色背景上的明亮文本,因此您还必须检查文本颜色并相应地进行调整。检查视图的背景或前景资源/颜色可能非常麻烦,但这里有两种方法:和
但是,我强烈建议您对文本和背景应用自定义的“固定”颜色。由于ActionBar仅与Honeycomb一起引入,因此对于以前的版本,没有任何可能违反的ActionBar
指南/样式。
这方面的一个良好开端是,它还支持主题.Sherlock.Light.DarkActionBar
。它为您生成所有绘图和样式文件,使您的操作栏和菜单在多个Android版本和修改中看起来一致。两个文本视图的下拉列表视图都是完全自定义的吗?如果是这样的话,你为什么不把背景颜色改成深色呢?是的。背景色可以改变为深色,这是解决方案之一。正是这样,我如何保持系统提供的默认背景色,同时能够使文本颜色可见,而无需任何硬编码(例如,姜饼的固定字体颜色必须为深色)?换句话说,字体属性将实现其当前背景,并相应地使用正确的颜色。我理解您的计划。请参阅下面我的扩展答案(太长,无法发表评论)。