您创建简单的应用程序以在webview中显示html页面我使用webview并显示这样的页面加载时间。
此后禁用滚动并使用下一个和上一个按钮来后退和前进包含。 所以我的代码如下。
首先onCreate显示添加webview并加载html文件。
mainWebView = (WebView) findViewById(R.id.mainWebView);
mainWebView.setVerticalScrollBarEnabled(false);
mainWebView.setHorizontalScrollBarEnabled(false);
mainWebView.getSettings().setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyWebClient());
mainWebView.setPictureListener(new MyPictureClass());
mainWebView.loadUrl("file:///android_asset/chapter-001.html");
使用MyWebclient类获取mainwebview的高度和宽度。
class MyWebClient extends WebViewClient
{
@Override
public void onPageFinished(WebView view, String url)
{
System.err.println("Page Finish Call");
lanscapHeight = protraitHeight = findHeight = mainWebView.getHeight();
System.err.println("Find Height->"+findHeight);
System.err.println("Portait Height->"+protraitHeight);
System.err.println("Landscap Height->"+lanscapHeight);
}
}
之后使用myPictureClass来获取webView包含的长度。
class MyPictureClass implements PictureListener
{
@Override
public void onNewPicture(WebView view, Picture picture)
{
proTraitContain = mainWebView.getContentHeight();
System.err.println("picture Class Call-->"+proTraitContain);
}
}
在this.create按钮旁边和上一页显示下一页和上一页。所以使用SimpleOnGestureListener来检测触摸事件。
btnNext = (Button) findViewById(R.id.btnNext);
btnNext.setOnTouchListener(this);
btnPrev = (Button) findViewById(R.id.btnPrev);
btnPrev.setOnTouchListener(this);
覆盖触摸方法。
@Override
public boolean onTouch(View view, MotionEvent event)
{
if (view == btnNext)
{
btnClickFlage = true;
gestureDetector.onTouchEvent(event);
} else
{
btnClickFlage = false;
gestureDetector.onTouchEvent(event);
}
return false;
}
implement the SimpleGestureListener class as Below.
class MyGesture extends SimpleOnGestureListener
{
@Override
public boolean onSingleTapUp(MotionEvent e)
{
super.onSingleTapUp(e);
System.err.println("Display Total Contain For Protrait -->"+proTraitContain);
System.err.println("Before Height-->" + findHeight);
if (btnClickFlage)
{
if (findHeight > (proTraitContain+protraitHeight))
{
if(restProtraitFlag)
{
System.err.println("If part In side Flag-->"+findHeight);
findHeight=findHeight+protraitHeight;
restProtraitFlag=false;
//findHeight=findHeight+protraitHeight;
mainWebView.scrollTo(0, findHeight);
System.err.println("If part In side Flag-->"+findHeight);
}else
{
mainWebView.loadUrl("file:///android_asset/chapter-002.html");
restProtraitFlag=true;
}
}
else
{
if(protraitFlag)
{
if(findHeight==protraitHeight)
{
findHeight = protraitHeight;
}else
{
findHeight = findHeight + protraitHeight;
}
protraitFlag=false;
}else
{
findHeight = findHeight + protraitHeight;
}
mainWebView.scrollTo(0, findHeight);
}
}
else
{
restProtraitFlag=true;
if (findHeight<=0)
{
mainWebView.loadUrl("file:///android_asset/chapter-001.html");
System.err.println("Load Previous page");
}
else
{
findHeight = findHeight - protraitHeight;
mainWebView.scrollTo(0, findHeight);
}
}
System.err.println("After Height-->" + findHeight);
}
return true;
}
}
但是我无法显示当前html页面路径的最后一页。现在该做什么。任何解决方案请给予。紧急。 我正确地获取内容宽度并使用scrollTo方法显示但我不能这样做。在最后一页的其余部分包含无法显示。
请以任何方式见到我。
提前感谢..
答案 0 :(得分:1)
嗨朋友最后我得到了我的问题answer.i使用ScrollTo方法滚动包含和显示下一个包含当前页面。但是问题是webView显示都包含相应的设备。所有时间包含显示高于此当前value.so我使用Webview.getScale();
方法来显示webview使用多少比例尺。据此我使用此方法获取当前包含的webview并使用Display page wise.it s finally it
s work for我..
答案 1 :(得分:0)
您好,您必须将您的HTML放入res中,然后您必须将其保留为raw,之后您可以像这样访问它...
webviewTips.loadUrl( “文件:///android_res/raw/tips.html”);
答案 2 :(得分:0)
您正在显示存储在资产文件夹或SD卡中的网页。
所以,我的建议是保留这种方法并以这种方式向用户显示网页..
编辑您的HTML文件并将Anchor Tags
放入其中......使用该文件,用户可以轻松浏览网页。 (Example for that)