网络图片查看器

网络图片查看器

  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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • php递归算法经典实例_递归算法1加到100

    php递归算法经典实例_递归算法1加到100在前面的文章《PHP递归算法(一)》中,我们为大家介绍了如何利用静态变量的方法来实现递归算法。本篇文章我们就继续为大家介绍另一种实现递归算法的方法即通过全局变量的方法。下面我们结合代码示例,为大家介绍通过全局变量Global实现递归的方法。代码如下:…

  • thinkphp浏览历史功能实现方法

    thinkphp浏览历史功能实现方法

    2021年10月30日
  • HNUSTOJ-1543 字符串的运算再现

    HNUSTOJ-1543 字符串的运算再现

  • mysql优化 面试_数据库优化方案整理

    mysql优化 面试_数据库优化方案整理点赞是一种积极的生活态度!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!而且这个问题就是一个送分题,数据库的优化方案基本就是那些,答案也都是固定的,大家只要好好…

    2022年10月27日
  • java中常量_Java中的常量有哪些?[通俗易懂]

    java中常量_Java中的常量有哪些?[通俗易懂]JAVA常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。那么java的常量有哪些呢?在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。下面我们就一起来看看java中的这些常量。1.整型常量整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具体表示形式如下。二进制:由数字0和1组成的数字序列。在JDK7.0中允许使用字面…

  • DataHub Java接入实时数据

    DataHub Java接入实时数据DataHubJava接入实时数据序言问题代码总结序言Datahub的相关介绍和优势,我在这里就不一一赘述,留个官方文档的连接([DataHub官方文档](https://help.aliyun.com/document_detail/47439.html?spm=a2c0j.8235941.654670.ddoc.26d91a22JWAbt9)),大家可以自己去看看。我想在这里记录的是…

发表回复

您的电子邮箱地址不会被公开。

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