23_传智播客Android视频教程_网络通信之网络图片查看器

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView      
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="网络图片的地址是:\n 这个可以自定在输入框里面输入,但是为了简便,直接使用TextView做了" />
    <Button
        android:id="@+id/Button01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="得到网络图片" />

        <ImageView
        android:id="@+id/imageView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>


MainActivity:

public class MainActivity extends Activity {

	private Button Button01;
	private ImageView imageView01;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Button01 = (Button) findViewById(R.id.Button01);
		imageView01 = (ImageView) findViewById(R.id.imageView01);
		Button01.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				String path = "http://111.114.116.236:8080/Test/image/Test.jpg";

				try {

					byte[] data = ImageService.getImageByByte(path);
					Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
							data.length);
					imageView01.setImageBitmap(bitmap);
				} catch (Exception e) {

					e.printStackTrace();
				}

			}
		});

	}

}


ImageService:

public class ImageService {

	public static byte[] getImageByByte(String path) throws Exception {
		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
		URL url = new URL(path);
		// HttpClientConnection 是对	HttpURLConnection的封装,不建议使用
		/*HttpsURLConnection与HttpURLConnection就是http与https的区别
		 * 
		 */
		HttpURLConnection httpURLConnection = (HttpURLConnection) url
				.openConnection();
		httpURLConnection.setConnectTimeout(5000);

		httpURLConnection.setRequestMethod("GET");
		if (httpURLConnection.getResponseCode() == 200) {
			InputStream inputStream = httpURLConnection.getInputStream();
		
			byte[] buffer = new byte[1024];
			int len = 0;
			// 读到buffer中间
			while ((len = inputStream.read(buffer)) != -1) {
				// 从buffer中读数据
				byteArrayOutputStream.write(buffer, 0, len);

			}
		
			inputStream.close();

		}
		return byteArrayOutputStream.toByteArray();

	}

}



你可能感兴趣的:(android,网络)