【网络图片查看】
1 package cn.itcast.image; 2 3 import cn.itcast.service.ImageService; 4 import android.app.Activity; 5 import android.graphics.Bitmap; 6 import android.graphics.BitmapFactory; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.Button; 10 import android.widget.EditText; 11 import android.widget.ImageView; 12 import android.widget.Toast; 13 14 public class MainActivity extends Activity { 15 private EditText pathText; 16 private ImageView imageView; 17 18 @Override 19 public void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.main); 22 23 pathText = (EditText) this.findViewById(R.id.imagepath); 24 imageView = (ImageView) this.findViewById(R.id.imageView); 25 Button button = (Button) this.findViewById(R.id.button); 26 button.setOnClickListener(new ButtonClickListener()); 27 } 28 29 private final class ButtonClickListener implements View.OnClickListener{ 30 31 public void onClick(View v) { 32 String path = pathText.getText().toString(); 33 try{ 34 byte[] data = ImageService.getImage(path); 35 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 36 imageView.setImageBitmap(bitmap);//显示图片 37 }catch (Exception e) { 38 e.printStackTrace(); 39 Toast.makeText(getApplicationContext(), R.string.error, 1).show(); 40 } 41 } 42 } 43 }
1 package cn.itcast.service; 2 3 import java.io.InputStream; 4 import java.net.HttpURLConnection; 5 import java.net.URL; 6 7 import cn.itcast.utils.StreamTool; 8 9 public class ImageService { 10 /** 11 * 获取网络图片的数据 12 * @param path 网络图片路径 13 * @return 14 */ 15 public static byte[] getImage(String path) throws Exception{ 16 URL url = new URL(path); 17 HttpURLConnection conn = (HttpURLConnection) url.openConnection();//基于HTTP协议连接对象 18 conn.setConnectTimeout(5000); 19 conn.setRequestMethod("GET"); 20 if(conn.getResponseCode() == 200){ 21 InputStream inStream = conn.getInputStream(); 22 return StreamTool.read(inStream); 23 } 24 return null; 25 } 26 27 }
1 package cn.itcast.utils; 2 3 import java.io.ByteArrayOutputStream; 4 import java.io.InputStream; 5 6 public class StreamTool { 7 /** 8 * 读取流中的数据 9 * @param inStream 10 * @return 11 * @throws Exception 12 */ 13 public static byte[] read(InputStream inStream) throws Exception{ 14 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 15 byte[] buffer = new byte[1024]; 16 int len = 0; 17 while( (len = inStream.read(buffer)) != -1){ 18 outStream.write(buffer, 0, len); 19 } 20 inStream.close(); 21 return outStream.toByteArray(); 22 } 23 24 }