将Android WebView文本大小匹配到TextView文本大小

问题描述:

有没有简单的方法(可能是非编程?)将WebView中的文本大小与TextView中的文本大小相匹配?将Android 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似乎默认为比T更大的尺寸。extView)

什么是确保我的WebView文本始终在大小TextView的文本相匹配的最佳方式,并有可能在其他外观 - 是它也许只是运气,它是即使是同一字型?

我猜的TextView正在加快从主题/风格/设备设置一些默认值,但我也猜测,web视图具有某种默认样式的可能是捡了相同的设置?

+0

是你能解决这个问题? – Maragues 2012-05-18 10:35:22

+0

不是。我放弃了使用TextViews来处理我正在做的所有事情。 – 2012-05-18 10:47:02

+0

好的,thx。不适合我。当我(希望)找到解决方案时,我会写一个答案 – Maragues 2012-05-18 11:11:22

马特,你可以尝试使用方法setTextZoom()WebView

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

thisWB:你WebView

thisTV:你TexView,从那里你会得到的文本大小为WebView

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

链接:WebSettings

+1

感谢您的建议。鉴于setTextZoom需要一个百分比,而getTextSize返回一个大小的像素,我不明白这是如何工作,但? (另外,我还在开发API级别8+,最终没什么关系,因为我只是改变了我的方法,以避免混合使用WebView和TextView ......) – 2012-07-26 16:56:39