最近在开发过程中使用了theme移植Preference并使用了一些android样式,但是在自定义的Theme修改了相关参数后却无法实现
可能有些朋友还不知道怎么用。这里也做个简要的使用方式说明。
1. xml中使用样式。
android:textAppearance="?android:attr/textAppearanceLarge"
?android:使用安卓内置样式。
<TextView android:id="@id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:text="Hellopss" android:ellipsize="marquee" android:textAppearance="?android:attr/textAppearanceLarge" android:fadingEdge="horizontal" />
2.View中使用到xml
setContentView(xml)
3. 定义Theme
<style name="AppTheme" parent="@style/AppThemsse"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <!-- Text styles --> <item name="android:textAppearance">@style/TextAppearance</item> <item name="android:textAppearanceInverse">@style/TextAppearance.Inverse</item> <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item> <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item> <item name="android:textAppearanceSmall">@style/TextAppearance.Small</item> <item name="android:textAppearanceLargeInverse">@style/TextAppearance.Large.Inverse</item> <item name="android:textAppearanceMediumInverse">@style/TextAppearance.Medium.Inverse</item> <item name="android:textAppearanceSmallInverse">@style/TextAppearance.Small.Inverse</item> <item name="android:textAppearanceButton">@style/TextAppearance.Widget.Button</item> <item name="android:textColorPrimary">#000079</item> <item name="android:textColorSecondary">#000079</item> <item name="android:textColorTertiary">@color/tertiary_text_light</item> <item name="android:textColorPrimaryInverse">@color/primary_text_dark</item> <item name="android:textColorSecondaryInverse">@color/secondary_text_dark</item> <item name="android:textColorTertiaryInverse">@color/tertiary_text_dark</item> <item name="android:textColorPrimaryDisableOnly">@color/primary_text_light_disable_only</item> <item name="android:textColorPrimaryInverseDisableOnly">@color/primary_text_dark_disable_only</item> <item name="android:textColorPrimaryNoDisable">@color/primary_text_light_nodisable</item> <item name="android:textColorSecondaryNoDisable">@color/secondary_text_dark_nodisable</item> <item name="android:textColorPrimaryInverseNoDisable">@color/primary_text_dark_nodisable</item> <item name="android:textColorSecondaryInverseNoDisable">@color/secondary_text_dark_nodisable</item> <item name="android:textColorHint">@color/hint_foreground_light</item> <item name="android:textColorHintInverse">@color/hint_foreground_dark</item> </style> <style name="TextAppearance"> <item name="android:textColor">?android:textColorPrimary</item> <item name="android:textColorHighlight">#FFFF9200</item> <item name="android:textColorHint">?android:textColorHint</item> <item name="android:textColorLink">#5C5CFF</item> <item name="android:textSize">16sp</item> <item name="android:textStyle">normal</item> </style>
theme修改该引用的样式
4. Theme使用
AndroidManifest.xml 中设置该Theme android:theme="**"
5. 使用View
(1)直接xml导入View
(2)先new View(这样出现了所描述的问题)
PreferenceScreen mPreferenceScreen = getPreferenceManager().createPreferenceScreen(getApplicationContext()); Preference mPreference = new Preference(this); mPreference.setTitle("我的应用世界"); mPreference.setSummary("测试自定义Preference"); mPreference.setKey("hello"); mPreferenceScreen.addPreference(mPreference);
注意红色的地方,如果使用的是getApplicationContent()不知不觉中就出现无法使用theme了。
惠存!