您的位置:首页 > 理论基础 > 计算机网络

Android网络图片查看器

2014-08-12 11:05 375 查看
网络图片查看器

输入网络图片路径,点击查看把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

存放一张图片,启动服务器。http://ip:8080/web/gg.gif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: