1. 程式人生 > >WebView設定最大高度

WebView設定最大高度

專案中遇到各種蛋疼的需求,但是不解決也不行。
我們專案裡增加了一個廣告橫幅,使用者使用的時候,有的被攔截掉,直接換成了他們的廣告:

給大家上兩張圖片看下效果,當時使用者發來的圖片沒有儲存,我自己模擬了一下:

廣告被攔截的圖片

這是正常的廣告橫幅

可以明顯的看出來,廣告被攔截之後,已經把自己的佈局頂下去了!
效果大家都看到了就直接上程式碼吧,WebView本身並沒有給我們提供控制自身高度的方法,所以我們要自己寫 :

直接把專案裡的程式碼貼出來,希望老大發現以後不會幹我

import android.content.Context;
import android.util.AttributeSet;
import
android.webkit.WebView; import android.widget.ProgressBar; /** * 帶進度條的WebView */ @SuppressWarnings("deprecation") public class ProgressWebView extends WebView { private ProgressBar progressbar; private int maxHeight = -1; public ProgressWebView(Context context, AttributeSet attrs) { super
(context, attrs); progressbar = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal); progressbar.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 3, 0, 0)); addView(progressbar); // setWebViewClient(new WebViewClient(){});
setWebChromeClient(new WebChromeClient()); } public class WebChromeClient extends android.webkit.WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { progressbar.setVisibility(GONE); } else { if (progressbar.getVisibility() == GONE) progressbar.setVisibility(VISIBLE); progressbar.setProgress(newProgress); } super.onProgressChanged(view, newProgress); } } public void setMaxHeight(int height) { maxHeight = height; } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { LayoutParams lp = (LayoutParams) progressbar.getLayoutParams(); lp.x = l; lp.y = t; progressbar.setLayoutParams(lp); super.onScrollChanged(l, t, oldl, oldt); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub super.onMeasure(widthMeasureSpec, heightMeasureSpec); if (maxHeight > -1 && getMeasuredHeight() > maxHeight) { setMeasuredDimension(getMeasuredWidth(), maxHeight); } } }

使用的時候直接 web.setMaxHeight(高度) 就可以了,記得要寫在webview資料載入以前,在看下效果:

至於網站的廣告被誰攔截了,又怎麼解決的,這個問題就不是我們的事了,咱們只要設定好最大高度不超過多少,不影響到咱們的自己的佈局就可以了。

相關推薦

android WebView設定高度

當我們在dialog中嵌入webview來顯示網頁資訊時,如果網頁內容足夠長,則會出現dialog高度被撐滿屏,但是介於美觀問題,我們會試圖動態設定webview的最大高度,可是遺憾的是,谷歌並沒有給我們提供這個方法,聰明人想出了聰明的辦法,具體請看下面程式碼: publ

WebView設定高度

專案中遇到各種蛋疼的需求,但是不解決也不行。 我們專案裡增加了一個廣告橫幅,使用者使用的時候,有的被攔截掉,直接換成了他們的廣告: 給大家上兩張圖片看下效果,當時使用者發來的圖片沒有儲存,我自己模擬了一下: 可以明顯的看出來,廣告被

dialog設定高度佔比

/** * 在dialog.show()前呼叫此方法 * * @param mView dialog要顯示的view */ private void setDialogSize(final View mView) { mView

jquery bootstrap下拉列表設定高度

       專案中需要點選彈出下拉框,使用了常用的bootstrap提供的Dropdowns下拉列表的外掛,在使用中,為了設定表格的哪些列 需要隱藏與否,由於表格的列達到了50多行,點選之後,需要將

奇淫技巧:移動端圖片處理,設定寬度,高度等比處理

有這樣的應用場景:    PC端和移動端共用了控制器,但是他們的html渲染是不同的,那麼在PC後臺裡錄入的一些圖片咋整,有的圖片在 img 標籤裡被編輯器定義了寬高,一般CSS影響不到 思路:    移動端處理這個問題時,首先應該保證img的最大寬度不能超過螢幕大小,不

ImageView高度和寬度失效解決方案

height oid 尺寸 註意 解決 分享 font 真的是 圖片 解決方案 做RecyclerView的 item 布局時,用到imageview ,可是圖片按原始尺寸顯示,不規範。 所以去google了一下imageview的寬高限制,就試了下maxheight/

textarea高度自適應(可設置高度

換行 hid fun utf-8 cti html logs type att <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

Jquery 高度

view mat 高度 style mark class init pos 20px <html lang="en"> <head> <meta charset="UTF-8"> <

JFrame設定尺寸

很多時候會有需求限制視窗大小。。。不是將視窗固定在某個尺寸,,,而是一個範圍。。。 限制最小尺寸可以用 JFrame的 setMinimumSize() 方法。。。但是設定最大尺寸去呼叫 setMaximumSize() 卻不起作用。。。原因未知 因此我的思路是  

Android 自定義橫向進度條(可動態設定值)

自定義橫向進度條       主佈局檔案中包 含          <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" androi

Tomcat容器做到自我保護,設定連線數(服務限流:tomcat請求數限制)

http://itindex.net/detail/58707-%E5%81%87%E6%AD%BB-tomcat-%E5%AE%B9%E5%99%A8 為了確保服務不會被過多的http長連線壓垮,我們需要對tomcat設定個最大連線數,超過這個連線數的請求會拒絕,讓其負載到其它機器。達到保護自己的同時起到

jQuery:同一class下,如何獲取多個div的中的高度

第一:要理解Jq中的獲取高度的三個方法height()、 innerHeight()、outerHeight() height():height innerHeight():height+padding outerHeight():height+padding+bo

ulimit 設定 開啟檔案數(祝大家 未來 精彩無限 -- unlimited)

1、簡介     本文 通過 ulimit 命令 來設定,ulimit 命令 在此 不詳細 解析,後期 單獨 的文章 進行 描述     1.1 介紹     很多 時候,linux

利用正則表示式來設定輸入字元長度

        在做機房合作的時候,很多東西都進行了“改革”,聽二牛說輸入的字元長度限制可以用正則表示式,當然限制字元長度不僅可以用這種方法來寫,還有通過設定文字框屬性等辦法來解決。不過利用正則表示式,我還是沒沒想到。反正正則表示式都學過了,為什麼不能拿過來用呢?讓它和我原

JS等比例縮放圖片,限定寬度和高度

JavaScript //圖片按比例縮放 var flag=false; function DrawImage(ImgD,iwidth,iheight){ //引數(圖片,允許的寬度,允許的高度) var image=new Image(); image.src=ImgD.src

div 自適應高度 高度後滾動條顯示

背景:為解決這樣一種情況:設定div的最大高度為xx%,想要自適應瀏覽器視窗高度,但是超出div高度的部分,就算設定滾動條scroll或者auto,滾動條也並不會顯示出來。而max-height為具體px的則會顯示。下面隨便弄點程式碼說明這2種情況: 一、高度自適應設定為

mysql的group_concat函式設定長度

mysql的group_concat函式,預設最大長度是1024 查詢sql: show variables like 'group_concat_max_len';   設定方式: 修改配置檔案my.ini: 在[mysqld]下新增配置:group_concat_m

修改FlowLayout原始碼,讓其支援設定行數

這裡所說的FlowLayout元件是來自鴻洋提供的一個流式佈局的框架 框架原始碼看這裡 框架作者部落格介紹看這裡 廢話不多說,直接上程式碼,主要就是修改FlowLayout的onMeasure和onLayout方法,同時我這裡還對onLayout方法優化了一下,減少了一次for迴圈處

[MySQL] 允許遠端訪問並設定連結數

------------------------------------------------ 允許遠端訪問 ----------------------------------------------------------- MySQL -uroot -p1234

laydate 動態設定小時間

/*時間外掛*/ laydate.render({ elem: '#startTime', type: 'month', max: 0, format: 'yyyy-MM',