这是我的家酿项目。这个想法是有一个电子纸显示器来显示从Android手机打开的电子书。电子报纸之间的连接可以是有线的也可以是无线的 - 这并不重要,因为我可以处理这两者。 (我知道类似的东西可用 - eInkCase,但是,嘿,我不想买它)。
ePaper可以采用二进制格式,它基本上是来自BitMap的下采样图片。我已经完成了转换,并通过对几页的文本内容进行硬编码来测试显示一本书的一些页面。
现在困难的部分是在Android手机上阅读电子书。我的目标电子书格式是ePub开始。我研究了一些应用程序,并了解到WebView用于显示内容。
我的问题是:
获取WebView的文本内容以使用某些JavaScript生成等效的位图是否明智?
有没有其他方法可以获取WebView的内容?
非常感谢任何帮助。
答案 0 :(得分:0)
您是如何从ePaper获取数据的?你能把它转换成String吗?
您可以生成动态字符串以创建临时html文件并在运行时加载它。例如代码
<WebView
android:id="@+id/WebViewToDisplay"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:fadeScrollbars="false" />
将数据加载到WebView
WebView webViewDisplay;
StringBuffer LoadWEb1;
webViewDisplay = (WebView) findViewById(R.id.WebViewToDisplay);
LoadWEb1 = new StringBuffer();
LoadWEb1.append("<html><body><h1>My First Heading</h1><p>My first paragraph.</p>");
//Sample code to read parameters at run time
String strName = "Test Paragraph";
LoadWEb1.append("<br/><p>"+strName+"</p>");
String result = LoadWEb1.append("</body></html>").toString();
WebSettings webSettings = webViewDisplay.getSettings();
webSettings.setJavaScriptEnabled(true);
webViewDisplay.getSettings().setBuiltInZoomControls(true);
if (android.os.Build.VERSION.SDK_INT >= 11){
webViewDisplay.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
webViewDisplay.getSettings().setDisplayZoomControls(false);
}
webViewDisplay.loadDataWithBaseURL(null, result, "text/html", "utf-8",
null);
//To load local file directly from assets folder use below code
//webViewDisplay.loadUrl("file:///android_asset/aboutapp.html");