Я пытаюсь полностью оправдать текст в Android с помощью автоматического расстановки переносов. Я добился полного обоснования с помощью WebView, как описано здесь. Я прочитал пару тем об авто-переносах в Android, но ни одна из них не применима к WebViews. Я пытался использовать новые дефисы CSS3: auto (включая -webkit-hyphens: auto), но Android WebKit пока не поддерживает его.
Я нашел сообщение в блоге здесь, в котором упоминается использование JavaScript с расстановкой переносов, но я понятия не имею, как его реализовать (JavaScript и HTML следующие в списке задач). Из-за размера файла .js я не хочу просто использовать webView.loadUrl("javascript:someFunction()");
Вот код, который я сейчас использую:
public class TestWebView extends Activity {
@Override
public void onCreate (Bundle savedState) {
WebView webView;
super.onCreate(savedState);
webView = new WebView(this);
setContentView(webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/WorkingExample.html");
}
}
Вот HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Hyphenator.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
body {
width:30%;
margin-left:35%;
margin-right:35%;
}
.text {
text-align:justify;
}
</style>
<script src="Hyphenator.js" type="text/javascript"></script>
<script type="text/javascript">
Hyphenator.config({
displaytogglebox : true,
minwordlength : 4
});
Hyphenator.run();
</script>
</head>
<body>
<h1>Example of using Hyphenator.js</h1>
<h2>Deutsch</h2>
<p class="hyphenate text" lang="de">Deutschsprachige Beispieltexte haben natürlicherweise längere Wortzusammensetzungen als englischsprachige. Aber auch <span lang="en">“hyphenation”</span> ist ein ziemlich langes Kompositum.</p>
<p class="hyphenate text" lang="de">Verändern Sie die Fenstergrösse um den Effekt der Silbentrennung zu sehen.</p>
<h2>English</h2>
<p class="hyphenate text" lang="en">English words are shorter in the average then german words. <span lang="de">«Silbentrennungsalgorithmus»</span> for example is quite long.</p>
<p class="hyphenate text" lang="en">Resize the window to see hyphenation in effect.</p>
<h2>Links</h2>
<p class="hyphenate text" lang="en">Not only words but also links like <a href="http://code.google.com/p/hyphenator/">http://code.google.com/p/hyphenator/</a> are processed. But in a special manner (using zero width space).</p>
</body>
</html>
Рядом с html-файлом хранится файл Hyphenator.js. Открытие HTML-файла в браузере моего компьютера работает должным образом, но на телефоне мне не повезло: В конце концов, я хочу, чтобы текст генерировался динамически, но просто заставить это работать было бы огромной помощью. Спасибо.