• 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。

     

  • 相关阅读:
    使用命令xrandr设置当前系统的显示分辨率及显示的旋转脚本
    CODEFORCE 246 Div.2 B题
    Android数据的四种存储方式之SQLite数据库
    C语言默认參数值的实现
    Android开发环境搭建
    也谈OpenFlow, SDN, NFV
    解决设置redmineblacklog的按钮无效问题
    长方体的研究
    表面张力与浮力
    表面张力与浮力
  • 原文地址:https://www.cnblogs.com/heml/p/3511340.html
Copyright © 2020-2023  润新知