使用WebView加载HTML资源
最近的项目需要做一个如同微信中的腾讯新闻的功能,如下图所示:
直接上关键代码:
布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/contact_bg_gray" android:orientation="vertical" > <TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:layout_marginTop="10dip" android:background="@drawable/big_corner_time" android:gravity="center" android:paddingBottom="2dip" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="2dip" android:text="9:32" android:textColor="@android:color/white" android:textSize="18sp" /> <WebView android:id="@+id/webView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/time" android:layout_centerHorizontal="true" android:layout_marginTop="8dip" android:background="@color/contact_bg_gray" android:layerType="software" /> </RelativeLayout>
颜色请自行替换。
mWebView = (WebView) findViewById(R.id.webView1); // holder.mWebView.loadUrl("http://www.baidu.com/"); WebSettings settings = mWebView.getSettings(); // settings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); settings.setAppCacheEnabled(true); int width = FAMobileApp.getDeviceWidth() - (int) (16 * FAMobileApp.getDensity()); int scaleInPercent = width * 100 / 322; System.out.println("scaleInPercent:"+scaleInPercent); mWebView.setInitialScale(scaleInPercent); mWebView.setBackgroundColor(mContext.getResources().getColor( R.color.contact_bg_gray)); mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { System.out.println("shouldOverrideUrlLoading:"+url); //此处可作转向操作 view.loadUrl(url); return true; } @Override public void onLoadResource(WebView view, String url) { System.out.println("onLoadResource:"+url); } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { System.out.println("shouldInterceptRequest:"+url); //TODO Here we can replace the url if (url.endsWith("cj_all_picture.png")) { // try { // InputStream is = mContext.getResources().getAssets().open("cj_all_tab_bg.png"); // WebResourceResponse response = new WebResourceResponse("image/gif", "utf-8", is); // return response; // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } } return null; } }); load(holder.mWebView); private void load(WebView mWebView) { try { String basePath = "/data/data/com.xxx.xx/test"; StringBuilder content = new StringBuilder(); String path = basePath + "cjsd.html"; fis = new FileInputStream(path); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1) { content.append(new String(buffer, 0, len, "gbk")); } // System.out.println(content); mWebView.getSettings().setDefaultTextEncodingName("utf-8"); String baseUrl = "file://" + basePath; mWebView.loadDataWithBaseURL(baseUrl, content.toString(), "text/html", "utf-8", null); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
使用的cjsc.html如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <style> <!-- body{text-align:center; margin:0 0; padding:0px; } .contentbg{margin:0 auto; width:322px; height:382px; } .content{ margin:0px auto; width:291px; height:369px; background:#FFFFFF; border-radius:10px; border:#c6c6c6 solid 2px; -moz-box-shadow:0px 2px 3px #999; -webkit-box-shadow:0px 2px 3px #999; box-shadow:0px 2px 4px #999; } .content_abg{ margin:0; width:293px; height:175px; padding-top:11px } .content_a{background:url(cj_all_picture.png) no-repeat; width:267px; height:151px; margin-left:13px; margin-bottom:14px; } .content_bbg{ margin:0; width:293px; height:196px; clear:both; } .content_b_line{width:291px; height:1px; background:#e6e6e6; } .content_b{width:288px; height:63px; margin:0; overflow:hidden; } .content_b1{width:200px; height:63px; margin:0; float:left; padding-left:13px; padding-top:9px; color:#000000; font-size:14px; text-align:left; font-family:"微软雅黑"; line-height:12px; } .content_b1 a:link{ color:#000000; text-decoration:none; } .content_b1 a:visited{ color:#000000; text-decoration:none; } .content_b1 a:hover{ color: #000000; text-decoration: none; } .content_b1_a{ color:#4e4e4e; font-size:13px; text-align:left; font-family:"微软雅黑"; } .content_b1_a a:link{ color:#4e4e4e; text-decoration:none; } .content_b1_a a:visited{ color:#4e4e4e; text-decoration:none; } .content_b1_a a:hover{ color: #4e4e4e; text-decoration: none; } .content_b2{float:right; height:60px; width:73px; margin:0px; } .content_b2_a{ height:51px; width:51px; margin:6px; background: url(cj_all_icon_xgsg.png); float:left; } .content_b2_b{ height:51px; width:51px; margin:6px; background: url(cj_all_icon_cjkx.png); float:left; } .content_b2_c{ height:51px; width:51px; margin:6px; background: url(cj_all_icon_cjsd.png); float:left; } .content_ba{width:288px; height:63px; margin:0; background:#3b94d6; } .content_b3{width:215px; height:63px; margin:0; float:left; padding-left:13px; padding-top:12px; color:#000000; font-size:19px; text-align:left; font-family:"微软雅黑"; line-height:12px; } .content_b3 a:link{ color:#000000; text-decoration:none; } .content_b3 a:visited{ color:#000000; text-decoration:none; } .content_b3 a:hover{ color: #FFFFFF; text-decoration: none; } .content_b3_a{ color:#4e4e4e; font-size:13px; text-align:left; font-family:"微软雅黑"; } .content_b3_a a:link{ color:#4e4e4e; text-decoration:none; } .content_b3_a a:visited{ color:#4e4e4e; text-decoration:none; } .content_b3_a a:hover{ color: #FFFFFF; text-decoration: none; } //--> </style> <title>长江视点</title> </head> <body> <div class="contentbg"> <div class="content"> <div class="content_abg"> <a href="#"><div class="content_a"></div></a> <div class="content_bbg"> <div class="content_b_line"> </div> <div class="content_b"> <div class="content_b1"> <a href="#">长江快讯</a><br /> <br /> <span class="content_b1_a"><a href="#">A股500点上涨耗尽多方子弹</a></span> </div> <div class="content_b2"> <a href="#"> <div class="content_b2_b"> </div> </a> </div> </div> <div class="content_b_line"> </div> <div class="content_b"> <div class="content_b1"> <a href="#">长江快讯</a><br /> <br /> <span class="content_b1_a"><a href="#">A股500点上涨耗尽多方子弹</a></span> </div> <div class="content_b2"> <a href="#"> <div class="content_b2_a"> </div> </a> </div> </div> <div class="content_b_line"></div> <div class="content_b"> <div class="content_b1"> <a href="#">长江快讯</a><br><br> <span class="content_b1_a"><a href="#">A股500点上涨耗尽多方子弹</a></span> </div> <div class="content_b2"> <a href="#"><div class="content_b2_c"> </div> </a> </div> </div> </div> </div> </div> </body> </html>
图片资源请自行替换
相关推荐
dangai00 2020-07-18
xhpscdx 2020-05-31
chenxiangpeng 2020-04-30
ncuboy0wsq 2020-03-27
学习web前端 2020-03-23
APCDE 2020-03-04
歆萌 2020-03-03
csdnuuu 2020-01-04
水龙吟的备忘录 2019-11-18
icewizardry 2014-04-10
元元 2019-11-17
androidstudyroom 2019-11-08
czpaex 2011-09-11
OldSoldier 2011-08-18
wangdaiying 2011-05-26
qixiang0 2019-08-24