网络图片查看器

网络图片查看器

  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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac的pycharm安装_mac允许任何安装来源

    mac的pycharm安装_mac允许任何安装来源使用MAC配置Python环境1.打开安装好的Pycharm2.创建一个新项目3.可以添加存放的位置4.选择Python安装路径

    2022年8月28日
    4
  • pycharm基本配置_python配置pycharm

    pycharm基本配置_python配置pycharm使用pycharm执行python程序非常方便,但如果用到argparse模块,需要加上命令行参数时就需要用到终端执行。pycharm直接使用终端也很方便,如下:但如果使用Anaconda环境,你会发现condaactivate命令无效。需要进行如下配置:需要更改红色框选的路径。更改为如下:右键打开文件所在位置:右键属性,将cmd.exe及其后面的内容复制到红色框框选的路径中去。重启pycharm即可。…

    2022年8月25日
    8
  • 原地算法矩阵置0_原地排序算法有哪些

    原地算法矩阵置0_原地排序算法有哪些给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix

    2022年8月9日
    6
  • 机房建设效果图制作|机房鸟瞰图设计|教程文章

    机房建设效果图制作|机房鸟瞰图设计|教程文章因为时间关系,这里只做简易分析,如图所示案例,首先客户得提供资料,例如CAD布置图或是手绘图纸等。这是第一步。接下来,就需要根据资料和客户沟通,什么地方是什么东西东西,有什么需要特别注意的地方吗,地面,墙面等是什么材质。剩下的基本就是建模和渲染了。建模的时候要注意,一定要注意房间的高度,因为将来还有吊顶等。一般而言,内部房间的地面材质都是防静电地板,而墙面基本就是刷白或是吸音板铝塑板之类。

    2022年6月2日
    51
  • vs2013安装教程详解_visual studio怎么注册账户

    vs2013安装教程详解_visual studio怎么注册账户1.下载好安装包,解压文件2.选中如图exe文件,右键选择管理员方式打开3更改一下安装路径,这里尽量避免在c盘上安装,我装在自己电脑d盘:4安装完后的结果如下,不用在意,继续点击启动->以后再说:5,然后弹出下面的界面,默认设置常规环境,启动vs即可,6,启动后,选择帮助任务栏下方的注册产品,打开后选择->使用产品密钥获得许可7,输入安装文件里有效的密钥,然后得到以下结果(许可证,密钥已应用),即安装成功…

    2022年9月10日
    3
  • Win7 安装.net framework 4.0 失败,错误HRESULT 0xc8000222解决办法

    Win7 安装.net framework 4.0 失败,错误HRESULT 0xc8000222解决办法

    2021年8月14日
    76

发表回复

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

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