我正在尝试在全球范围内设置文本大小,无法找到或找到一种方法。
例如我有这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id = "@+id/Table"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:shrinkColumns="*"
android:stretchColumns="*">
</TableLayout>
</ScrollView>
TableRows和TextViews本身是根据用户输入动态生成的。
问题是我想基于资源文件全局设置基本textSize,而不必去触及一堆代码。有没有办法告诉应用程序,“嘿应用程序,使用它作为所有textViews的基本textSize?”
或者用另一种方式表达,在HTML中我可以在body,div和table级别设置字体大小。我可以在布局(LinearLayout,TableLayout,ScrollView等)级别上做类似的事情吗?
答案 0 :(得分:15)
要为所有TextView
设置全局样式,请在自定义主题中设置android:textViewStyle
属性,并将主题应用于您的应用或各个活动。
伪代码:
<style name="MyTheme" parent="android:Theme">
<item name="android:textViewStyle">@style/MyTextView</item>
</style>
<style name="MyTextView" parent="android:Widget.TextView">
<item name="android:textSize">14sp</item>
</style>
...
<activity android:theme="@style/MyTheme">
...
答案 1 :(得分:0)
或者如果你想设置默认的全文文本样式但是为某些事情覆盖部分内容(比如本例中的按钮),你可以这样做:
<style name="whiteText" parent="@android:style/TextAppearance.Medium">
<item name="android:textStyle">normal</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="buttonStyle" parent="@android:style/Widget.Button">
<item name="android:textAppearance">@style/whiteText</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:gravity">center</item>
<item name="android:background">@drawable/pinkbutton</item>
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:minHeight">50.0dip</item>
</style>
<style name="DarkTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:buttonStyle">@style/buttonStyle</item>
<item name="android:textAppearance">@style/whiteText</item>
</style>
可能你开始的唯一最佳位置是:http://developer.android.com/design/style/index.html