Android webView載入html程式碼詳解
最近的專案需要做一個如同微信中的騰訊新聞的功能,如下圖所示:
直接上關鍵程式碼:
佈局:
Xml程式碼- <?xmlversion="1.0"encoding="utf-8"?>
- <RelativeLayoutxmlns: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
- 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>
顏色請自行替換。
Java程式碼- 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
- publicboolean shouldOverrideUrlLoading(WebView view, String url) {
- System.out.println("shouldOverrideUrlLoading:"+url);
- //此處可作轉向操作
- view.loadUrl(url);
- returntrue;
- }
- @Override
- publicvoid 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();
- // }
- }
- returnnull;
- }
- });
- load(holder.mWebView);
- privatevoid 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 = newbyte[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如下
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;
-
相關推薦
Android webView載入html程式碼詳解
最近的專案需要做一個如同微信中的騰訊新聞的功能,如下圖所示: 直接上關鍵程式碼: 佈局: Xml程式碼 <?xmlversion="1.0"encoding="utf-8"?> <RelativeLayoutxmlns:android="htt
記Android webView載入html程式碼 不執行js方法的情況
頁面中有一個webView顯示後臺返回的富文字資料,富文字資料是一串html程式碼,但是並沒有<html><body>這些標籤,webView不做任何處理,使用 webView.loadData(html, "text/html; charset=U
Android webview載入html程式碼 上下左右有白邊問題
直接開始後臺返回一串html程式碼字串 然候客戶端用webview做展示 別的都正常 只是四周會有白邊 網上找的各種方法都不好使 如下圖後來給webview添加了兩個setting表框變窄了 但是還
Android TextView載入html圖片詳解
學Android的時候突然想到一個問題:怎麼用TextView控制元件顯示帶有格式的文字,可否使用Html佈局?查了下Android 幫助文件,其提供了android.text.Html類和Html.ImageGetter、Html.TagHandler介
Android WebView 載入HTML程式碼
<uses-permission android:name="android.permission.INTERNET" /> <?xml version="1.0" enco
android 使用webview載入html程式碼亂碼問題
使用webview.loadData(url,"text/html","UTF-8")方法載入html亂碼,可以嘗試改用:webview.loadDataWithBaseURL(null,url,"text/html","UTF-8",null);方法
Android WebView載入HTML表單並通過javascript提交
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
android WebView載入html 處理的圖片過寬的工具類 (過寬的控制到100%,正常尺寸的不放大)
參考 部落格: 小曾同志的專欄: https://blog.csdn.net/u010023795/article/details/53509495 工具類 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; impor
android webview載入html圖片自適應手機螢幕大小&點選檢視大圖
我們在開發中,顯示資訊詳情時,一般後臺會給出html文字,在Android端一般採用webview控制元件來展示,但是後臺給出的html文字一般是給電腦端用的,沒有自適配手機,導致手機端圖片顯示過大,需要左右移動來檢視全圖。下面給出幾種實用方法,達到在手機端用webvi
webview載入html程式碼(包含播發騰訊視訊的分享程式碼)
騰訊視訊下方的分享點選之後會出現三個不同的分享地址,如圖:,第一個好像是基於falsh的,第二個是基於falsh播放的,由於android4.+不再支援falsh外掛,所以這兩種方式都不能使用,第一種會直接白屏,第二種會顯示外掛無法載入,第三種可以正常使用。 webView = (W
Android WebView載入Html文字不能適配,以及圖片中間有空白的問題
1.WebView載入Html文字的正確方式 webView.loadData(html, "text/html; charset=utf-8", "utf-8"); 2.但是如果文字中帶圖片的
Android webview載入html出現空白問題
wv.loadUrl(“http://xxx.xxx.xxx:1025/api/index.php?m=&c=Api“); wv.setWebChromeClient(new WebChro
Android webview載入html自適應螢幕
webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setCacheMode(WebSettings.LOAD
Android webview載入Html頁面,傳參到Html並獲取返回值
1.Android端程式碼 public class MainActivity extends Activity { private static final String LOGTAG = "MainActivity"; @SuppressLint("Ja
Android webView載入html頁面不顯示(顯示白屏)
Android webView載入網頁不顯示(顯示白屏) 最近專案上線後發現了一個bug,某些使用者打不開webView載入的靜態網頁,大部分使用者卻是可以,起初以為是手機原因,後來測試發現,只要是
Android + Appium 自動化測試完整的環境配置及程式碼詳解
環境的的搭建 參考大神部落格:https://www.cnblogs.com/fnng/p/4540731.html 該部落格有一套詳細的入門教程,奈何時間有點久遠有些東西不能用了,但是參考價值還是有滴。 1.安裝各種SDK jre必須1.8以上 AndroidSDK需要8.0以下的測試,
Android四大元件之一 廣播接受者入門(附程式碼詳解)
BroadCastReceiver 廣播機制 BroadcastRecevier是Android的四大元件之一。一、廣播的分類: 1.普通廣播 當手機應用程式中一旦觸發了某件事情,那麼就會發送一段廣播,這段廣播時非同步的,能夠被所有的廣播監聽者接收,進行處理。
Android中WebView載入Html中的圖片新增點選事件
基本的思路: (1)WebView來載入HTML。 (2)向HTML中注入JavaScript,利用JavaScript來呼叫Android中的方法(執行一些跳轉的操作等等)。 首先你必須有一個HTML或者是一個地址,或者是存到本地的一個檔案。我這裡使用的是存到本
Android WebView載入最基本的程式碼
public class WebViewActivity extends Activity { @BindView(R.id.webview) WebView mWebView; private String url; @Ov
Android Webview 載入外部html時選擇載入本地的js,css等資原始檔
在使用WebView載入網頁的時候,有一些固定的資原始檔如js的jquery包,css,圖片等資源會比較大,如果直接從網路載入會導致頁面載入的比較慢,而且會消耗比較多的流量。所以這些檔案應該放在assets裡面同app打包。 要解決這個問題需要用到API 11(HONEYC