html页面可以用在webview,如何在android中使用webview明智地显示Html内容页面?

本文介绍如何在Android应用中使用WebView显示HTML页面,并通过自定义的WebViewClient和PictureListener来获取页面高度。同时,通过监听按钮和触摸事件实现页面的前后翻页。然而,在最后一页的剩余内容显示上遇到问题,寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

您创建简单的应用程序以在webview中显示html页面我使用webview并显示这样的页面加载时间。

qXLRF.png

此后禁用滚动并使用下一个和上一个按钮来后退和前进包含。

所以我的代码如下。

首先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方法显示但我不能这样做。在最后一页的其余部分包含无法显示。

请以任何方式见到我。

提前感谢..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值