2

Currently, I'm using theme Theme.Sherlock.Light.DarkActionBar.

I'm applying ?android:attr/textAppearanceMedium and ?android:attr/textAppearanceSmall attributes, for the TextView used in ListView

<TextView
    ...
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    ...
    android:textAppearance="?android:attr/textAppearanceSmall" />

However, for Jelly Bean and Gingerbread, I get 2 very different effects.

Jelly Bean (Looks great!)

enter image description here

Gingerbread (Ergh...)

enter image description here

Is there any portable way I can tell, when using textAppearanceMedium and textAppearanceSmall attributes on a light background, the color should be dark. Currently, Gingerbread is using light background for its list view. Hence, the correct font color should be dark, so that text is visible.

4

1 回答 1

0

我了解到您希望支持相应 Android 版本的原生外观并希望避免覆盖默认颜色。

“香草”姜饼版本可能看起来像您屏幕截图中的版本,但我也看到了设备制造商(例如三星 TouchWiz 或 HTC Sense)或自定义 ROM 覆盖这些颜色值的 GUI 改编。不仅是默认背景颜色,还有文本颜色。

因此,您无法确定所有的 Honeycomb 之前的版本都会在下拉菜单中的白色背景上显示明亮的文本,因此您还必须检查文本颜色并相应地进行调整。检查视图的背景或前景资源/颜色可能非常麻烦,但这里有两种方法:https ://stackoverflow.com/a/8089242/1140682和https://stackoverflow.com/a/8848494/1140682

但是,我强烈建议您对文本和背景应用自定义的“固定”颜色。由于 ActionBar 仅在 Honeycomb 中引入,因此ActionBar之前的版本没有任何您可能违反的准则/样式。一个好的开始是ActionBar 样式生成器,它也支持Theme.Sherlock.Light.DarkActionBar. 它为您生成所有可绘制对象和样式文件,以便您的ActionBar菜单和菜单在多个 Android 版本和修改中看起来一致。

于 2013-04-02T12:31:54.913 回答