生成要在Android应用程序的ePaper显示屏上显示的内容

时间:2016-09-15 19:46:35

标签: android webview bitmap epub

这是我的家酿项目。这个想法是有一个电子纸显示器来显示从Android手机打开的电子书。电子报纸之间的连接可以是有线的也可以是无线的 - 这并不重要,因为我可以处理这两者。 (我知道类似的东西可用 - eInkCase,但是,嘿,我不想买它)。

ePaper可以采用二进制格式,它基本上是来自BitMap的下采样图片。我已经完成了转换,并通过对几页的文本内容进行硬编码来测试显示一本书的一些页面。

现在困难的部分是在Android手机上阅读电子书。我的目标电子书格式是ePub开始。我研究了一些应用程序,并了解到WebView用于显示内容。

我的问题是:

  • 获取WebView的文本内容以使用某些JavaScript生成等效的位图是否明智?

  • 有没有其他方法可以获取WebView的内容?

非常感谢任何帮助。

1 个答案:

答案 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");