访问网络图片
2015-07-02 11:06
519 查看
public class MainActivity extends Activity implements OnClickListener { EditText imgsrc; ImageView image; private final int SUSSCE = 0; private final int ERROR = 1; private Handler han = new Handler() {
//定义消息handler @Override public void handleMessage(Message msg) { if (msg.what == SUSSCE) { image.setImageBitmap((Bitmap) msg.obj); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.image); imgsrc = (EditText) findViewById(R.id.imgsrc); findViewById(R.id.butgo).setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub final String url = imgsrc.getText().toString(); new Thread(new Runnable() { @Override public void run() { Bitmap bit = GetImageByNet(url); // image.setImageBitmap(bit); if (bit != null) { Message msg = new Message(); msg.what = SUSSCE;// 标记 发送 msg.obj = bit;//主要是在子线程中无法操作ui线程中的东西 所以要把子线程要返回的值定义为message返回到主线程定义的handler中 在进行操作 han.sendMessage(msg); } else { Message msg = new Message(); msg.what = ERROR;// han.sendMessage(msg); } } }).start(); } /** * 根据url获取图片 * * @param url * url * @return url获取的图片 */ private Bitmap GetImageByNet(String url) { HttpURLConnection conn = null; try { URL myUrl = new URL(url);// 创建一个url对象 // 得到https的对象 conn = (HttpURLConnection) myUrl.openConnection(); conn.setRequestMethod("GET");// 设置请求方式 conn.setConnectTimeout(10000);// 设置连接服务器超时时间,如果大于十 就抛异常 conn.setReadTimeout(5000);// 设置读数据超时时间 大于5秒就报异常 int responseCode = conn.getResponseCode();// 得到响应码 if (responseCode == 200) { // 访问成功 InputStream is = conn.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(is); return bitmap; } else { android.util.Log.i("coauzo", "访问失败响应码:" + responseCode); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); } } return null; } }
相关文章推荐
- [Gevent]gevent 网络抓取问答
- iOS开发中HTTP协议的应用
- tableViewCell的网络图片加载方法
- Http协议
- TCP实现客户端和服务器的通信
- 查看网络图片
- 无线网络模式和加密方式简介
- 查看网络图片
- Python网络爬虫之网盘爬虫【简易版】
- 网络基础(2)--通信过程之一HTTP协议
- 《UNIX网络编程》卷I 实验环境搭建
- iOS开发网络篇—使用ASI框架进行文件下载
- iOS开发之runtime的运用-获取当前网络状态
- Android Http编程之HttpClient
- 构建自己的AngularJS,第一部分:作用域和digest 转摘:http://www.ituring.com.cn/article/39865
- 解决Unable to update index for central|http://repo1.maven.org/maven2错误
- Linux下tcp并发服务器的几种设计的模式套路
- iOS开发工具-网络封包分析工具Charles
- Linux内核软RPS实现网络接收软中断的负载均衡分发
- 网络基础篇(一)--TCP/IP协议族