布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="网络图片的地址是:\n 这个可以自定在输入框里面输入,但是为了简便,直接使用TextView做了" />
<Button
android:id="@+id/Button01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="得到网络图片" />
<ImageView
android:id="@+id/imageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
MainActivity:
public class MainActivity extends Activity {
private Button Button01;
private ImageView imageView01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button01 = (Button) findViewById(R.id.Button01);
imageView01 = (ImageView) findViewById(R.id.imageView01);
Button01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String path = "http://111.114.116.236:8080/Test/image/Test.jpg";
try {
byte[] data = ImageService.getImageByByte(path);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);
imageView01.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
ImageService:
public class ImageService {
public static byte[] getImageByByte(String path) throws Exception {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
URL url = new URL(path);
// HttpClientConnection 是对 HttpURLConnection的封装,不建议使用
/*HttpsURLConnection与HttpURLConnection就是http与https的区别
*
*/
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.setRequestMethod("GET");
if (httpURLConnection.getResponseCode() == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
// 读到buffer中间
while ((len = inputStream.read(buffer)) != -1) {
// 从buffer中读数据
byteArrayOutputStream.write(buffer, 0, len);
}
inputStream.close();
}
return byteArrayOutputStream.toByteArray();
}
}