zoukankan      html  css  js  c++  java
  • android 查看网络图片

     

    public class MainActivity extends Activity {
        private EditText pathText;
        private ImageView imageView;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            pathText = (EditText) this.findViewById(R.id.imagepath);
            imageView = (ImageView) this.findViewById(R.id.imageView);
            Button button = (Button) this.findViewById(R.id.button);
            button.setOnClickListener(new ButtonClickListener());
        }
        
        private final class ButtonClickListener implements View.OnClickListener{
    
            public void onClick(View v) {
                String path = pathText.getText().toString();
                try{
                    byte[] data = ImageService.getImage(path);
                    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                    imageView.setImageBitmap(bitmap);//显示图片
                }catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(), R.string.error, 1).show();
                }
            }
        }
    }
    public class ImageService {
        /**
         * 获取网络图片的数据
         * @param path 网络图片路径
         * @return
         */
        public static byte[] getImage(String path) throws Exception{
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();//基于HTTP协议连接对象
            conn.setConnectTimeout(5000);
            conn.setRequestMethod("GET");
            if(conn.getResponseCode() == 200){
                InputStream inStream = conn.getInputStream();
                return StreamTool.read(inStream);
            }
            return null;
        }
    
    }
    public class StreamTool {
        /**
         * 读取流中的数据
         * @param inStream
         * @return
         * @throws Exception
         */
        public static byte[] read(InputStream inStream) throws Exception{
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while( (len = inStream.read(buffer)) != -1){
                outStream.write(buffer, 0, len);
            }
            inStream.close();
            return outStream.toByteArray();
        }
    
    }

    如果web在本机,不能用127.0.0.1和localhost进行测试,可以使用局域网ip。

     

  • 相关阅读:
    付出给人一种美好的感觉
    表连接查询 条件在On与Where后区别
    Json与实体类 转化
    算法的时间复杂度和空间复杂度详解
    真的理解同步和异步了吗?
    花生壳申请域名并进行内网穿透
    XML 反序列化
    .Net 发送邮件
    BootStrap DataTable 时间日期列排序
    SQL Server 动态SQL拼接
  • 原文地址:https://www.cnblogs.com/heml/p/3511340.html
Copyright © 2011-2022 走看看