网络图片查看器

网络图片查看器

  1 public class MainActivity extends Activity implements OnClickListener {
  2 
  3     private static final String TAG = "MainActivity";
  4     protected static final int ERROR = 1;
  5     private EditText etUrl;
  6     private ImageView ivIcon;
  7     private final int SUCCESS = 0;
  8     
  9     private Handler handler = new Handler() {
 10 
 11         /**
 12          * 接收消息
 13          */
 14         @Override
 15         public void handleMessage(Message msg) {
 16             super.handleMessage(msg);
 17             
 18             Log.i(TAG, "what = " + msg.what);
 19             if(msg.what == SUCCESS) {    // 当前是访问网络, 去显示图片
 20                 ivIcon.setImageBitmap((Bitmap) msg.obj);        // 设置imageView显示的图片
 21             } else if(msg.what == ERROR) {
 22                 Toast.makeText(MainActivity.this, "抓取失败", 0).show();
 23             }
 24         }
 25     };
 26 
 27     @Override
 28     protected void onCreate(Bundle savedInstanceState) {
 29         super.onCreate(savedInstanceState);
 30         setContentView(R.layout.activity_main);
 31         
 32         ivIcon = (ImageView) findViewById(R.id.iv_icon);
 33         etUrl = (EditText) findViewById(R.id.et_url);
 34         
 35         findViewById(R.id.btn_submit).setOnClickListener(this);
 36     }
 37 
 38     @Override
 39     public void onClick(View v) {
 40         final String url = etUrl.getText().toString();
 41         
 42         new Thread(new Runnable() {
 43 
 44             @Override
 45             public void run() {
 46                 Bitmap bitmap = getImageFromNet(url);
 47 
 48 //                ivIcon.setImageBitmap(bitmap);        // 设置imageView显示的图片
 49                 if(bitmap != null) {
 50                     Message msg = new Message();
 51                     msg.what = SUCCESS;
 52                     msg.obj = bitmap;
 53                     handler.sendMessage(msg);
 54                 } else {
 55                     Message msg = new Message();
 56                     msg.what = ERROR;
 57                     handler.sendMessage(msg);
 58                 }
 59             }}).start();
 60         
 61     }
 62 
 63     /**
 64      * 根据url连接取网络抓去图片返回
 65      * @param url
 66      * @return url对应的图片
 67      */
 68     private Bitmap getImageFromNet(String url) {
 69         HttpURLConnection conn = null;
 70         try {
 71             URL mURL = new URL(url);    // 创建一个url对象
 72             
 73             // 得到http的连接对象
 74             conn = (HttpURLConnection) mURL.openConnection();
 75             
 76             conn.setRequestMethod("GET");        // 设置请求方法为Get
 77             conn.setConnectTimeout(10000);        // 设置连接服务器的超时时间, 如果超过10秒钟, 没有连接成功, 会抛异常
 78             conn.setReadTimeout(5000);        // 设置读取数据时超时时间, 如果超过5秒, 抛异常
 79             
 80             conn.connect();        // 开始链接
 81             
 82             int responseCode = conn.getResponseCode(); // 得到服务器的响应码
 83             if(responseCode == 200) {
 84                 // 访问成功
 85                 InputStream is = conn.getInputStream();    // 获得服务器返回的流数据
 86                 
 87                 Bitmap bitmap = BitmapFactory.decodeStream(is); // 根据 流数据 创建一个bitmap位图对象
 88                 
 89                 return bitmap;
 90             } else {
 91                 Log.i(TAG, "访问失败: responseCode = " + responseCode);
 92             }
 93         } catch (Exception e) {
 94             e.printStackTrace();
 95         } finally {
 96             if(conn != null) {
 97                 conn.disconnect();        // 断开连接
 98             }
 99         }
100         return null;
101     }
102 }

 

转载于:https://www.cnblogs.com/xiaoying1245970347/p/4452844.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109476.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js中的匿名函数_js匿名函数怎么定义

    js中的匿名函数_js匿名函数怎么定义定义:匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高!也是学好JS的重点。匿名函数:没有实际名字的函数。首先我们声明一个普通函数://声明一个普通函数,函数的名字叫fnfunctionfn(){console.log(“张培跃”);}然后将函数的名字去掉即是匿名函数://匿名函数,咦,运行时,你会发现报错啦!function(){console.log(“张培跃”);}到此,你会发现单独运行一个匿名函数,由于不符合语法…

    2022年10月3日
    3
  • oc深坑測试题及其答案[通俗易懂]

    oc深坑測试题及其答案

    2022年1月22日
    35
  • AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子

    AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子经典的物理统一在原子上,量子的物理统一在量子上,化学统一在元素上,而生命统一在DNA上,DNA本身拆干了,其实就是一群元素,按照经典物理和量子物理所进行的组合。科学本质上是一种经验主义的认识论,属于哲学的一个分支。量子理论,要通过哲学语言,量子属于形而上看不到、摸不着的东西。元气的基本五行,是世界万物的行成与演变的方式。生命的本质是化学,化学的本质是物理,物理的本质用数学描述,数学的本质是由我们的某种语言写出

    2022年6月3日
    37
  • armv7在哪儿看(armv7s)

    iOS中的armv7,armv7s,arm64,i386,x86_64都是什么在做静态库的时候以及引用静态库的时候经常会遇到一些关于真机模拟器不通用的情况,会报错找不到相应库导致编译失败,这里简单记录一下各种设备支持的架构。iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器,模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器…

    2022年4月11日
    43
  • 京东金融大数据竞赛猪脸识别(8)- 识别方法之四

    京东金融大数据竞赛猪脸识别(8)- 识别方法之四除了softmax层构建的深度网络,Matlab还有一个简单的构建数据分类的函数,那就是patternnet,其用法类似。可以直接对图像特征数据处理,也可以对图像集处理。代码如下:%exam1.m用训练图像特征构建深度网络并计算测试图像得分clear;load(‘JDPig_mlhmslbp_spyr.mat’);m=numel(classe_name);n=length(y)…

    2022年6月21日
    25
  • winexec for linux[通俗易懂]

    winexec for linux[通俗易懂]ViewFullVersion:[allvariants]psexecforLinuxpromodusAugust25th,2008,04:42AMAftersometrial&errorI’vegottenwinexectoworkonLinux.Thisisidenticaltothepse

    2022年7月27日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号