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

基于volley的获取网络图片

2016-03-24 15:27 316 查看
这篇文档是早期自学的时候斜的小的案例,与大家分享一下,项目很简单不多说直接上代码
public class MainActivity extends Activity {
//网络连接拿到流,,添加网络连接权限
//转换字节流写入数组 baos.toByteArray();
//新线程、数组转换成Bitmip
//handler传递数据
private ImageView imageView;
private Thread thread;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
int what=msg.what;
if (what==1) {
byte []datas=(byte[]) msg.obj;
Log.d("DD", "获取图片成功"+datas);
Bitmap bitmap=BitmapFactory.decodeByteArray(datas, 0, datas.length);
imageView.setImageBitmap(bitmap);
}
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView) findViewById(R.id.imageView1);
thread=new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
try {
byte []datas=getItem();
Message msg= new Message();
msg.what=1;
msg.obj=datas;
handler.sendMessage(msg);
Log.d("DD", "------------"+datas);
} catch (Exception e) {
Log.d("DD", "网络连接异常---------------");
}

}
});
thread.start();

}

public static byte[] getItem() throws Exception{
URL url=new URL("http://file.bmob.cn/M03/E4/CC/oYYBAFbo1iWAaWMlADXbkFtwLZ8635.jpg");
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(3000);
conn.setReadTimeout(3000);
int cade=conn.getResponseCode();
if (cade==200) {
InputStream instream= conn.getInputStream();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(baos);
BufferedInputStream bis=new BufferedInputStream(instream);
byte [] buff=new byte[1024];
int len=0;
while ((len=bis.read(buff))!=-1) {
bos.write(buff, 0, len);
}
bos.flush();
byte [] datas=baos.toByteArray();
return datas;
}
return null;
}

}
代码很简单,就不多解释了跟大家分享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: