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

安卓网络编程-通过GET方式获取网络图片

2016-06-29 22:41 465 查看
通过使用java.net.HttpURLConnection包,来获取网络图片并显示在ImageView中,知识点包括子线程的创建,线程之间的传值,handle消息队列。

package com.jxhs.cx;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
static ImageView ivImageView;
static MainActivity mainActivity;
static Handler handler = new Handler() {

@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
ivImageView.setImageBitmap((Bitmap) msg.obj);

break;

case 0:
Toast.makeText(mainActivity, "获取失败", Toast.LENGTH_SHORT).show();
break;
}
}

};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivImageView = (ImageView) findViewById(R.id.iv);
mainActivity = this;
}

public void showiv(View view) {
Thread thread = new Thread() {

@Override
public void run() {
String urlString = "http://wanluqi.cn/wp-content/uploads/2016/05/79051463989665.jpg";
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.connect();
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
Bitmap bm = BitmapFactory.decodeStream(is);
Message msg = new Message();
msg.obj = bm;
msg.what = 1;
handler.sendMessage(msg);
} else {
Message msg = handler.obtainMessage();
msg.what = 0;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}

};
thread.start();

}

}


Xml布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.cx.MainActivity"
android:orientation="vertical" >

<Button
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取图片"
android:onClick="showiv" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/iv"/>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络编程 Java