網絡圖片查看器
輸入網絡圖片路徑,點擊查看把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