当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

7.5.1 WebView(网页视图)基本用法

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:26:54

text, attrs); } public MyWebView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (mOnScrollChangedCallback != null) { mOnScrollChangedCallback.onScroll(l - oldl, t - oldt); } } public OnScrollChangedCallback getOnScrollChangedCallback() { return mOnScrollChangedCallback; } public void setOnScrollChangedCallback( final OnScrollChangedCallback onScrollChangedCallback) { mOnScrollChangedCallback = onScrollChangedCallback; } public static interface OnScrollChangedCallback { //这里的dx和dy代表的是x轴和y轴上的偏移量,你也可以自己把l, t, oldl, oldt四个参数暴露出来 public void onScroll(int dx, int dy); }}MainActivity.java:public class MainActivity extends AppCompatActivity { private MyWebView wView; private Button btn_icon; private long exitTime = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_icon = (Button) findViewById(R.id.btn_icon); wView = (MyWebView) findViewById(R.id.wView); wView.loadUrl("http://www.hao123.com"); wView.setWebViewClient(new WebViewClient() { //在webview里打开新链接 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); //比如这里做一个简单的判断,当页面发生滚动,显示那个Button wView.setOnScrollChangedCallback(new MyWebView.OnScrollChangedCallback() { @Override public void onScroll(int dx, int dy) { if (dy > 0) { btn_icon.setVisibility(View.VISIBLE); } else { btn_icon.setVisibility(View.GONE); } } }); btn_icon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { wView.setScrollY(0); btn_icon.setVisibility(View.GONE); } }); } @Override public void onBackPressed() { if (wView.canGoBack()) { wView.goBack(); } else { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); } } }}运行效果图:当网页开始滚动,会呈现一个呵呵的按钮,我们点击呵呵按钮可以回到顶部!然后呵呵按钮会隐藏~需求3:滚动条的问题你可能用的属性如下:setHorizontalScrollBarEnabled(false);//水平不显示setVerticalScrollBarEnabled(false); //垂直不显示setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);//滚动条在WebView内侧显示setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY)//滚动条在WebView外侧显示需求4:设置缩放以及自适应屏幕根据我们一般的习惯打开网页对于看不清楚的地方,我们喜欢双指来缩放网页,而WebView则需要我们自己手动来设置这个是否支持缩放了!只需要在加入下述代码即可:WebSettings settings = wView.getSettings();settings.setUseWideViewPort(true);//设定支持viewportsettings.setLoadWithOverviewMode(true); //自适应屏幕settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(false);settings.setSupportZoom(true);//设定支持缩放使用上述代码后,进去页面就会是这样一个效果:当我们缩放时,出现了一个恶心的问题,就是很常见的缩放控件,我们肯定是不想要的啦,那么加上下面句代码就可以把缩放控件给隐藏掉了!settings.setDisplayZoomControls(false);我们也可以自行设置初始的缩放比例,只需为webView:wView.setInitialScale(25);//为25%,最小缩放等级嘿嘿,上面是整个网页都缩放的,不过可能有时我们仅仅是需要对字体进行缩放,那么可以这样做:settings.setTextZoom(int);也可以直接通过:settings.setTextSize(TextSize.LARGER);来设置大小。Android自带五个可选字体大小的值:SMALLEST(50%),SMALLER(75%),NORMAL(100%),LARGER(150%), LARGEST(200%)。需求5.获取WebView的Cookie数据我们都知道Cookie其实只是一个代表用户唯一标识的字符串,情景一般是:用户输入账号密码后,点击登陆,用户要拿着这个Cookie去访问服务器提供的相关服务!我们可以把cookie的获取写到onPageFinsihed的方法中,简单的可以这样写:@Overridepublic void onPageFinished(WebView view, String url) { CookieManager cookieManager = CookieManager.getInstance(); String CookieStr = cookieManager.getCookie(url); Log.e("HEHE", "Cookies = " + CookieStr); super.onPageFinished(view, url);}需求6.设置WebView的Cookie数据嘿嘿,我们上面获取到了Cookie或者通过其他途径获得了Cookie,我们如何为WebView设置Cookie呢?我们可以在需要设置Cookie的地方加入下述代码:CookieSyncManager.createInstance(MainActivity.this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setC

上一页  [1] [2] [3] [4]  下一页


7.5.1 WebView(网页视图)基本用法