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',