android网络图片查看器

Android 专栏收录该内容
60 篇文章 0 订阅

package com.itheima74.internetpicturelook;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 1.输入一个图片url
 * 2.转换成bitmap位图
 * 3.展示到ImageView上
 */
public class MainActivity extends AppCompatActivity {

    private EditText et_url;
    private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_url = (EditText) findViewById(R.id.et_url);
        iv = (ImageView) findViewById(R.id.iv);
        findViewById(R.id.bt_look).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String path = et_url.getText().toString().trim();
                if (path.isEmpty()) {
                    Toast.makeText(MainActivity.this, "请输入图片网址", Toast.LENGTH_SHORT).show();
                } else {
                    //开启子线程去网络下载图片
                    downLoadPicture(path);
                }
            }

            private void downLoadPicture(final String path) {
                // 子线程请求网络
                new Thread() {
                    @Override
                    public void run() {
                        try {
                            URL url = new URL(path);
                            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                            connection.setRequestMethod("GET");
                            connection.setConnectTimeout(5000);
                            int responseCode = connection.getResponseCode();
                            if (responseCode == 200) {
                                InputStream inputStream = connection.getInputStream();
                                final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                                // 主线程更新UI
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        iv.setImageBitmap(bitmap);
                                    }
                                });
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
            }
        });
    }

}


  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值