使用webview

来源:互联网 发布:mysql的string转date 编辑:程序博客网 时间:2024/06/05 08:49

一、创建一个布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                android:layout_width="match_parent"                android:layout_height="match_parent">    <WebView         android:id="@+id/webView"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_alignParentBottom="true"         android:layout_alignParentTop="true"         android:layout_above="@+id/titleTextView">        </WebView>    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@id/titleTextView"        android:layout_margin="5dp"        android:layout_above="@+id/progressBar"/>    <ProgressBar        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:visibility="invisible"        style="?android:attr/progressBarStyleHorizontal"        android:id="@id/progressBar"/></RelativeLayout>
二、创建fragment

public class PhotoPageFragment extends VisibleFragment {    private String mUrl;    private WebView mWebView;    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setRetainInstance(true);        mUrl=getActivity().getIntent().getData().toString();    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View v=inflater.inflate(R.layout.fragment_photo_page,container,false);        final ProgressBar progressBar= (ProgressBar) v.findViewById(R.id.progressBar);        progressBar.setMax(100);        final TextView titleTextView= (TextView) v.findViewById(R.id.titleTextView);        mWebView= (WebView) v.findViewById(R.id.webView);        mWebView.getSettings().setJavaScriptEnabled(true);        mWebView.setWebViewClient(new WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                return false;            }        });        mWebView.setWebChromeClient(new WebChromeClient(){            @Override            public void onProgressChanged(WebView view, int newProgress) {                if (newProgress==100) {                    progressBar.setVisibility(View.INVISIBLE);                }else {                    progressBar.setVisibility(View.VISIBLE);                    progressBar.setProgress(newProgress);                }            }            @Override            public void onReceivedTitle(WebView view, String title) {                titleTextView.setText(title);            }        });        mWebView.loadUrl(mUrl);        return v;    }}
三、创建activity来托管fragment

public class PhotoPageActivity extends SingleFragmentActivity {    @Override    protected Fragment createFragment() {        return new PhotoPageFragment();    }}
四、启动activity

GalleryItem item=mItems.get(position);Uri photoPageUri=Uri.parse(item.getPhotoPageUrl());Intent i=new Intent(getActivity(),PhotoPageActivity.class);i.setData(photoPageUri);startActivity(i);
五、让activity自己处理WebView的设备旋转问题

<activity android:name=".PhotoPageActivity"    android:configChanges="keyboardHidden|orientation|screenSize"/>




0 0
原创粉丝点击