我正在使用BrowserField
在我的应用程序中显示一些本地HTML文件。它正确显示HTML文件。但是在屏幕启动时它会显示一些白色屏幕(背景)。我该如何摆脱这个问题?
我使用以下代码:
BrowserFieldConfig _bfConfig = new BrowserFieldConfig();
_bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);
_bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE );
_bfConfig.setProperty(BrowserFieldConfig.USER_AGENT, "MyApplication 1.0");
BrowserField myBrowserField = new BrowserField(_bfConfig);
add(myBrowserField);
BrowserFieldRequest request = new BrowserFieldRequest("local:///OTPhelp_en.html");
myBrowserField.requestContent(request);
答案 0 :(得分:2)
我没有完美的答案。如果你看一下at this question,到目前为止,还没有给出关于如何使BrowserField
背景透明的答案,这将是一种方式来解决你的问题。
根据您的OTPhelp_en.html
页面的编写方式,您拥有的控制权以及更改频率,这可能是一种可接受的解决方法:
如果您的html文件具有纯色背景,并且您知道该颜色是什么(因为它是您的 html内容),那么您只需设置BrowserField
背景颜色即可。然后,在呈现html内容之前,您不会看到任何白色闪光。像这样:
public class MyBrowserScreen extends MainScreen {
// this assumes the html file uses a red (#ff0000) background
private int BG_COLOR = Color.RED;
public MyBrowserScreen() {
// set the screen manager's background
getMainManager().setBackground(BackgroundFactory.createSolidBackground(BG_COLOR));
BrowserFieldConfig _bfConfig = new BrowserFieldConfig();
_bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);
_bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE );
_bfConfig.setProperty(BrowserFieldConfig.USER_AGENT, "MyApplication 1.0");
BrowserField myBrowserField = new BrowserField(_bfConfig);
// set the browser field background to match the HTML background, and
// the containing screen's background
_myBrowserField.setBackground(getMainManager().getBackground());
add(myBrowserField);
BrowserFieldRequest request = new BrowserFieldRequest("local:///OTPhelp_en.html");
myBrowserField.requestContent(request);
当然,以这种方式对其进行硬编码意味着如果HTML文件更改其背景颜色,您也需要在Java代码中更改它。
如果您想避免这种情况,并且您知道HTML文件将始终使用纯色背景,则可以先将html文件作为资源流打开
getClass().getResourceAsStream("/OTPhelp_en.html");
然后解析它,搜索背景颜色(例如<body bgcolor=
或<body style="background-color:
)。如果在HTML文件中进行简单的背景颜色更改,这至少会使浏览器字段看起来正确。
如果HTML文件使用渐变背景或图像背景,则必须更改上述代码。但是,没有更多信息,这是我对解决方法的建议。