У меня есть веб-представление, которое я пытаюсь иметь масштаб к определенному проценту при загрузке страницы. Версия iPhone этого программного обеспечения использует метатег HTML:
Так как веб-представление Android, кажется, не уважает тот тег я трудно кодированный процент с помощью setInitialScale (). Однако веб-представление, просто утончаются, игнорируя этот вызов метода. Какое число я поместил там, оно показывает в 100%.
Идеи?
Обновление: это не работает в эмуляторе на моем Droid (Motorola), или на моем G1 (HTC).
На некоторых устройствах HTC возникают проблемы с WebView
, попробуйте этот фрагмент!
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
myWebView = new WebView(this);
myWebView.getSettings().setLoadsImagesAutomatically(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.setInitialScale(100);
try {
Method m = myWebView.getClass().getMethod("setIsCacheDrawBitmap", boolean.class);
if (m != null) {
m.invoke(myWebView, false);
myWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
}
} catch (NoSuchMethodException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
myWebView.loadUrl("http://www.stackoverflow.com");
Включили ли вы поддержку масштабирования для своего веб-просмотра?
WebSettings webSettings = mywebView.getSettings();
webSettings.setSupportZoom(true);
Какая у вас версия? Похоже, что в версии 2.0 и ниже была проблема с этим, но она была решена в версии 2.1.
Тег meta
работает для меня, если я разделяю параметры точкой с запятой (;) вместо запятой (,). Я использовал это в прошлом:
<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
И это работает, по крайней мере в браузере. Я не уверен насчет WebView
, но, возможно, стоит попробовать.
Можно увидеть несколько вариантов.
1. Возможно, с вашим кодом что-то не так. Вот самый простой код, и я могу сказать, что он мне подходит. Контент масштабируется.
WebView webview1 = (WebView) findViewById(R.id.webview1);
webview1.setInitialScale(30);
webview1.loadUrl("http://stackoverflow.com");
Пожалуйста, разместите свой код. Весь код, относящийся к конфигурации WebView. Тестирую на эмуляторе 2.2
2. Возможно, что-то не так с проверяемым URL. Вы можете протестировать " http://stackoverflow.com ", пока я тестирую его, и он отлично масштабируется.
3. Может быть, мы используем разные SDK. Против какого SDK вы строите? Я имею в виду, какова ваша цель в default.properties? Какой у вас uses-sdk в AndroidManifest.xml?
Вот простой тест, который мне подходит http://open-pim.com/tmp/WebViewTest.zip . Вы тоже можете попробовать.