Android网络图片查看器

网络图片查看器
输入网络图片路径。点击查看把web应用的图片显示在手机上
MainActivity
{
 EditText pathText=(EditText) this.findViewById(R.id.imagepath);
 Button button=(Button) this.findViewById(R.id.button);
 ImageView imageView = (ImageView) this.findViewById(R.id.imageView);
 button.setOnClickListener(new ButtonClickListener());
 }
 private static class ButtonClickListener implements View.OnClickListener
 {
   public void onClick(View v)   
   {
     String path = pathText.getText().toString();
try{
byte[] data = ImageService.getImage(path);  //得到图片后以字节数组来存放图片数据,得到图片的过程为业务service
     Bitmap bitmap = BitmapFactory.decodeByteArray(data,0,data.length);
imageView.setImageBitmap(bitmap); //显示图片
     }catch (Exception e)
{
  e.printStackTrace();
  Toast.makeText(getApplicationContext(),R.string.error,1).show();
}
  }
 }
 /*获取网络图片数据*/
 public class ImageService
 {
   public static byte[] getImage(String path) throws Exception
   {
     URL url = new URL(path);
HttpURLConnection conn=(HttpURLConnection) url.openConnection(); //基于HTTP协议连接对象
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200)     //推断请求是否成功
InputStream inStream = conn.getInputStream();
return StreamTool.read(inStream);    //封装工具类,从流里面读取二进制数据
   }
 }
 
 public class StreamTool
 {
   //读取流中的数据
   public static byte[] read(InputStream inStream) throws Exception
   {
     ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len=0;
while( (len = inStream.read(buffer)) !=-1)
{
  outStream.write(buffer,0,len);
}
inStream.close();
return outStream.toByteArray();
   }
 }
 
 服务端Dynamic Web Project
 存放一张图片,启动server。http://ip:8080/web/gg.gif 
posted @ 2015-12-25 12:52  hrhguanli  阅读(207)  评论(0编辑  收藏  举报