Android之WebView的简单使用
2015-10-29 17:34
302 查看
最近项目开发用到了WebView,简单整理了一下我的代码:
1.xml:activity_main
2.MainActivity:
第一次写博客,多多捧场…..
1.xml:activity_main
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#f6f6f7" > <RelativeLayout android:id="@+id/web_title_layout" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/imageview_banner_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="10dp" android:src="@drawable/home_back" /> <TextView android:id="@+id/tv_banner_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="我的" android:textColor="#000000" android:textSize="16sp" /> <TextView android:id="@+id/tv_banner_refresh" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="40dip" android:text="刷新" android:textSize="18sp" android:gravity="center_vertical" android:layout_marginRight="10dp"/> </RelativeLayout> <WebView android:layout_below="@id/web_title_layout" android:id="@+id/banner_webView" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
2.MainActivity:
public class MainActivityextends Activity implements BaseActivity { private ImageView imageview_banner_back; private WebView banner_webView; private TextView tv_banner_refresh,tv_banner_title; private ProgressDialog dialog; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setListener(); initDate(); } @Override public void initView() { AppContext.getInstance().addActivity(this); banner_webView=(WebView) findViewById(R.id.banner_webView); imageview_banner_back=(ImageView) findViewById(R.id.imageview_banner_back); tv_banner_refresh=(TextView) findViewById(R.id.tv_banner_refresh); tv_banner_title=(TextView) findViewById(R.id.tv_banner_title); context=BannerWebViewActivity.this; } @Override public void setListener() { imageview_banner_back.setOnClickListener(this); tv_banner_refresh.setOnClickListener(this); } @Override public void initDate() { String url="http://www.baidu.com/"; banner_webView.loadUrl(url); //以下代码为选填 //支持javascript banner_webView.getSettings().setJavaScriptEnabled(true); // 设置可以支持缩放 banner_webView.getSettings().setSupportZoom(true); // 设置出现缩放工具 banner_webView.getSettings().setBuiltInZoomControls(true); //扩大比例的缩放 banner_webView.getSettings().setUseWideViewPort(true); //自适应屏幕 banner_webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); banner_webView.getSettings().setLoadWithOverviewMode(true); //获取屏幕焦点 banner_webView.requestFocus(); banner_webView.setWebChromeClient(new WebChromeClient(){ @Override public void onReceivedTitle(WebView view, String title) { // TODO Auto-generated method stub super.onReceivedTitle(view, title); tv_banner_title.setText(title); } //网页加载进度 @Override public void onProgressChanged(WebView view, int newProgress) { // TODO Auto-generated method stub if (newProgress==100) { closeDialog(); }else{ openDialog(newProgress); } } private void openDialog(int newProgress) { // TODO Auto-generated method stub if (dialog==null) { dialog=new ProgressDialog(context); dialog.setMessage("加载中"); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setProgress(newProgress); dialog.show(); }else{ dialog.setProgress(newProgress); } } private void closeDialog() { // TODO Auto-generated method stub if (dialog!=null&&dialog.isShowing()) { dialog.dismiss(); dialog=null; } } }); banner_webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub super.onReceivedError(view, errorCode, description, failingUrl); view.loadUrl("file:///android_asset/error.html"); } }); } //改写物理按键--返回到逻辑 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode==KeyEvent.KEYCODE_BACK) { if (banner_webView.canGoBack()) { banner_webView.goBack(); return true; }else{ finish();//退出程序 } } return super.onKeyDown(keyCode, event); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.imageview_banner_back: this.finish(); break; case R.id.tv_banner_refresh: banner_webView.reload(); break; default: break; } } }
第一次写博客,多多捧场…..
相关文章推荐
- Android学习博客资源收藏
- iOS中的lldb研究
- iOS 8,9NagationBar 更改颜色
- express-session deprecated undefined resave option; provide resave option app.js :16:9
- android异常!!! FAILED BINDER TRANSACTION !!!
- iOS App打包流程
- canvas绘制图形
- Android 关于接口回调原理的解析
- iOS 公司开发者账号申请
- Cg per-pixel lighting with cookies
- Android属性动画分析
- android 如何显示模态的 DialogFragment。
- 2015 iOS推送流程详解,适合新手观看
- android线程池
- iOS系统状态栏动态隐藏问题
- android 代码控制TextView的字体加粗
- Android 缓存-ASimplecache
- Android studio 导入github工程
- -Android Studio导入Project的方法
- iOS APP中数据加载的6种方式