Android下载网页源码显示没图片的网页

运行效果:html

有图片的网页显示不出来。java

XMLandroid

<?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" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

javaweb

public class web extends Activity {

	private WebView webView;
	StringBuffer data = new StringBuffer();

	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.web);
		// webView经过数据显示网页的组件
		webView = (WebView) findViewById(R.id.webView);
		// WebSettings做用:对WebView进行配置和管理
		WebSettings webSettings = webView.getSettings();
		webSettings.setLoadsImagesAutomatically(true); // 支持自动加载图片
		webSettings.setUseWideViewPort(true); // 将图片调整到适合webview的大小
		webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
		// 若是访问的页面中要与Javascript交互,则webview必须设置支持Javascript
		webSettings.setJavaScriptEnabled(true);
		new webData().execute("https://www.baidu.com/");

	}

	class webData extends AsyncTask<String, Void, StringBuffer> {
		@Override
		protected void onPostExecute(StringBuffer result) {// 和Asynck参数三同样
			// TODO Auto-generated method stub
			super.onPostExecute(result);
			webView.loadData(data.toString(), "text/html;charset=utf-8",
					"utf-8");
		}

		@Override
		protected StringBuffer doInBackground(String... arg0) {// 和AsyncTask参数一同样
			// TODO Auto-generated method stub
			URL url;
			try {
				url = new URL(arg0[0]);
				try {
					HttpURLConnection httpConection = (HttpURLConnection) url
							.openConnection();
					httpConection.setReadTimeout(60000);
					httpConection.setRequestMethod("GET");
					// 读取数据部分
					InputStream inputStream = httpConection.getInputStream();// 此方法是链接返回的输入流,是中转站
					InputStreamReader inputReader = new InputStreamReader(
							inputStream, "utf-8");
					// inputStreamReader是字节流和字符流的中转站,能够转换成bufferReader
					BufferedReader bufferReader = new BufferedReader(
							inputReader);
					String s;
					while ((s = bufferReader.readLine()) != null) {
						data.append(s);
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			return data;
		}
	}
}
相关文章
相关标签/搜索