1 新建安卓工程
2 给工程添加访问呢网络权限 <uses-permission android:name="android.permission.INTERNET"/>
3 添加一个按钮, 一个imageview 即可
4 代码
package com.example.httpimageview1;
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.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button btn1;
private ImageView img1;
private TextView text1;
//图片资源
private String url="http://www.baidu.com/img/baidu_sylogo1.gif";
private Handler handler1=new Handler(){
@Override
public void handleMessage(Message msg) {
Log.v("zms","我收到消息了,开始设置图片");
img1.setImageBitmap((Bitmap)msg.obj);
Log.v("zms","设置图片结束");
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img1=(ImageView)findViewById(R.id.imageView1);
text1=(TextView)findViewById(R.id.textView1);
btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.v("zms","click");
myThread my=new myThread();
Log.v("zms","已经发给线程取读图片了,我继续干我的");
my.start();
Log.v("zms","我接新活了,网络号了吗?");
}
});
}
class myThread extends Thread
{
@Override
public void run() {
/* super.run();*/
URL myFileURL;
//Bitmap bitmap2=null;
Log.v("zms","我是子线程,我在访问网络");
Bitmap bitmap=getHttpBitmap(url);
Log.v("zms","我是子线程,访问网络结束,准备扔消息给handler");
Message age=handler1.obtainMessage();
age.obj=bitmap;
handler1.sendMessage(age);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public static Bitmap getHttpBitmap(String url) {
URL myFileURL;
Bitmap bitmap2=null;
try{
myFileURL=new URL(url);
HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection();
conn.setConnectTimeout(5000);
conn.setDoInput(true);
//不使用缓存
conn.setUseCaches(false);
InputStream is=conn.getInputStream();
bitmap2=BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e)
{
e.printStackTrace();
}
return bitmap2;
}
}