通过 httpurlconnection 访问网络设置imageview

来源:互联网 发布:卤素灯 led 对比 知乎 编辑:程序博客网 时间:2024/04/27 18:09

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;
 }

}


0 0
原创粉丝点击