当前位置:操作系统 > 安卓/Android >>

android网络同喜之通过网络获得图片

主activity
[java]  
package com.netimg;  
  
  
import android.app.Activity;  
import android.graphics.Bitmap;  
import android.graphics.BitmapFactory;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.ImageView;  
import android.widget.Toast;  
  
public class AndroidnetimgActivity extends Activity {  
    /** Called when the activity is first created. */  
    //定义所使用的组件  
    private Button button;  
    private EditText editText;  
    private ImageView imagesView;  
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        //实例化用到的组件  
        editText =(EditText)findViewById(R.id.EditText);  
        imagesView = (ImageView)findViewById(R.id.ImageView);  
        button = (Button)findViewById(R.id.Button);  
          
        //为按钮添加监听事件  
        button.setOnClickListener(new buttonListener());  
          
    }  
      
      
    private final class buttonListener implements OnClickListener{  
  
        @Override  
        public void onClick(View v) {  
            String path = editText.getText().toString();  
              
            System.out.println(path);  
              
            //通过业务类ImageService的getImage方法得到数据  
            try {  
                byte[] data = ImageService.getImage(path);  
                Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);  
                imagesView.setImageBitmap(bitmap);//显示图片  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
                Toast.makeText(getApplicationContext(), "获取失败", 1).show();  
            }  
              
              
        }  
          
    }  
}  
 
业务类
[java] 
package com.netimg;  
  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.URL;  
  
  
  
  
  
public class ImageService {  
  
    public static byte[] getImage(String path) throws Exception {  
      
        URL url = new URL(path);  
        //基于HTTP协议连接对象  
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
          
        conn.setConnectTimeout(5000);  
        conn.setRequestMethod("GET");  
          
        if(conn.getResponseCode() == 200){  
            InputStream inStream = conn.getInputStream();  
            return StreamTool.read(inStream);  
        }  
          
        return null;  
    }  
  
}  
 
工具类
[java]  
package com.netimg;  
  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
  
public class StreamTool {  
  
    public static byte[] read(InputStream inStream) throws IOException {  
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
        byte[] buffer = new byte[1024];  
        int len = 0;  
        while( (len = inStream.read(buffer)) != -1){  
            outStream.write(buffer, 0, len);  
        }  
        inStream.close();  
        return outStream.toByteArray();  
    }  
  
}  
 
获得网络权限
[html]  
<uses-permission android:name="android.permission.INTERNET"/>  
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,