更改 Android 应用的样式和主题中的文本外观

我正在编写一个Android应用程序,我想改变我的应用程序的主题。

我已经设法通过使用主题更改了应用程序的背景颜色,但我正在努力更改默认文本外观。

这是我的样式.xml资源文件。

<resources>
    <style name="QTheme" parent="android:Theme.Light">
        <item name="android:windowBackground">@color/q_green</item>
        <item name="android:colorBackground">@color/q_green</item>
        <item name="android:textAppearance">@style/QText</item> 
    </style>

    <color name="q_green">#008000</color>
    <color name="white">#FFFFFF</color>

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
        <item name="android:textSize">20sp</item> 
        <item name="android:textColor">@color/white</item> 
        <item name="android:textStyle">bold</item>
        <item name="android:textFont">Verdana</item>
    </style>
</resources>

只是为了检查,这是我的一个TextViews的例子,我想在我的布局文件中使用上述样式。

<TextView
    android:id="@+id/txtDevice"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/device" 
/>

有人能看到我哪里错了吗?


答案 1

只是为了完整性,并完全归功于Lusprog,现在这是我的资源文件

<resources>
    <style name="QTheme" parent="android:Theme.Light">
        <item name="android:windowBackground">@color/q_green</item>
        <item name="android:colorBackground">@color/q_green</item>
        <item name="android:textViewStyle">@style/QText</item> 
    </style>

    <color name="q_green">#008000</color>
    <color name="white">#FFFFFF</color>

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
        <item name="android:textSize">20sp</item> 
        <item name="android:textColor">@color/white</item> 
        <item name="android:textStyle">bold</item>
        <item name="android:typeface">sans</item>
    </style>
</resources>

还要感谢Padma Kumar的字体帮助。


答案 2

从样式中删除此行,没有这样的属性

<item name="android:textFont">Verdana</item>

您可以提供用于更改字体样式的字体

<item name="android:typeface">monospace</item>

用于设置样式

<TextView
    android:id="@+id/txtDevice"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    style="@style/QText"
    android:text="@string/device" 
/>