将Android WebView文本大小与TextView文本大小相匹配

时间:2012-01-06 18:13:36

标签: android webview textview

是否有一种简单的方法(可能是非程序化的?)将WebView中的文本大小与TextView中的文本大小相匹配?

我有一个(XML指定的)TextView,它没有文本大小或外观属性:

<TextView
    android:id="@+id/lblExerciseSummary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/lblWeekTitle"
    android:textColor="@color/home_screen_text_colour"
    android:paddingBottom="4dp"
    android:paddingLeft="4dp" />

还有一个没有文字大小或外观属性的WebView:

<WebView
    android:id="@+id/wvTest"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/lblRunDescription"
    android:layout_below="@+id/lblTest"
    android:background="#00000000" />

当我将文本放入TextView(使用setText())和HTML到WebView(带有loadData()和文本本身在<p>元素中而没有额外的CSS /内联样式集)时,这两个视图以不同的大小显示文本(WebView似乎默认为比TextView更大的大小。)

确保我的WebView文本总是与TextView文本大小相匹配,以及可能在其他外观中的最佳方法是什么?它可能只是运气,它甚至是相同的字体?

我猜测TextView正在从主题/样式/设备设置中获取一些默认值,但我也猜测WebView有某种默认样式表,可能正在挑选相同的设置?

1 个答案:

答案 0 :(得分:0)

马特,您可以尝试使用setTextZoom()中的方法WebView

thisWB.getSettings().setTextZoom(thisTV.getTextSize());

thisWB:您的WebView

thisTV:您的TexView,您将从中获取WebView的文字大小

请注意,方法setTextZoom(int textZoom)是API级别14(如果您正在为Android 4.0 +开发应用,请使用它。)

链接:WebSettings