一、效果

二、代码示例
package com.bw.day13;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import day01.bw.com.myapplication.R;
public class Main12Activity extends AppCompatActivity {
public static final int DOWNLOAD = 1;
public static final int REGISTER = 2;
ImageView showImg;
Button download;
Button postRequest;
HandlerThread handlerThread;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main12);
download = findViewById(R.id.download);
showImg = findViewById(R.id.showImg);
postRequest= findViewById(R.id.postRequest);
handlerThread = new HandlerThread("http");
handlerThread.start();
handler = new HttpHandler(handlerThread.getLooper());
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.sendEmptyMessage(DOWNLOAD);
}
});
postRequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.sendEmptyMessage(REGISTER);
}
});
}
private void downFile() {
BufferedInputStream bis=null;
FileOutputStream fos=null;
String url = "http://pic41.nipic.com/20140508/18609517_112216473140_2.jpg";
String save = "/sdcard/flowergirl.jpg";
File file = new File(save);
if(file.exists()){
file.delete();
}
try {
URL url1 = new URL(url);
HttpURLConnection urlconn = (HttpURLConnection) url1.openConnection();
urlconn.setRequestMethod("GET");
urlconn.setConnectTimeout(1000*5);
urlconn.setReadTimeout(1000*5);
urlconn.setDoInput(true);
urlconn.connect();
if(urlconn.getResponseCode() == 200){
InputStream is = urlconn.getInputStream();
bis = new BufferedInputStream(is);
fos = new FileOutputStream(save);
byte[] bytes = new byte[1024];
int len =-1;
while((len=bis.read(bytes)) !=-1){
fos.write(bytes,0,len);
}
fos.flush();
}
final Bitmap bitmap = BitmapFactory.decodeFile(save);
runOnUiThread(new Runnable() {
@Override
public void run() {
showImg.setImageBitmap(bitmap);
}
});
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(bis!=null){
bis.close();
}
if(fos!=null){
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void registerPost() {
String registerUrl = "http://169.254.230.253:8080/register";
try {
URL url1 = new URL(registerUrl);
HttpURLConnection urlconn = (HttpURLConnection) url1.openConnection();
urlconn.setRequestMethod("POST");
urlconn.setConnectTimeout(1000*5);
urlconn.setReadTimeout(1000*5);
urlconn.setDoInput(true);
urlconn.setDoOutput(true);
urlconn.setRequestProperty("Content-type","application/x-www-form-urlencoded");
String postParam = "name=1702ccc&password=12345";
OutputStream os = urlconn.getOutputStream();
os.write(postParam.getBytes());
os.flush();
final StringBuilder sb = new StringBuilder();
int code = urlconn.getResponseCode();
if(code == 200){
InputStream is = urlconn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while((line = br.readLine()) != null){
sb.append(line);
}
}
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Main12Activity.this, sb.toString(), Toast.LENGTH_SHORT).show();
}
});
}catch (Exception e){
e.printStackTrace();
}
}
private class HttpHandler extends Handler{
public HttpHandler(Looper looper){
super(looper);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case DOWNLOAD:
downFile();
break;
case REGISTER:
registerPost();
break;
default:
break;
}
}
}
}