封装获取网络图片并改变尺寸

来源:互联网 发布:二手网络通讯设备回收 编辑:程序博客网 时间:2024/06/05 22:40

从返回json数据的url获取网络图片解析为字节流,再通过BitmapFactory转为Bitmap
reverseBitmapSize用来将图片转为屏幕的1/2大小,之后用recyclerView瀑布流加载照片

public  class GetBitmap {        public static Bitmap getBitmap(String uri){            //将网络图片解析字节流,再获取图片            byte[] picByte;            try{                URL url = new URL(uri);                HttpURLConnection connection = (HttpURLConnection)url.openConnection();                connection.setRequestMethod("GET");                connection.setReadTimeout(8000);                connection.setConnectTimeout(8000);                if(connection.getResponseCode == 200){                    InputStream in = connection.getInputStream();                    ByteArrayOutputStream bos = new ByteArrayOutputStream();                    byte[] bytes = new byte[1024];                    int length = -1;                    while((length = in.read(bytes))){                        bos.write(bytes,0,length);                      }                    picByte = bos.toByteArray();                    in.close();                    bos.close();                    Bitmap bitmap = BitmapFactory.decodeByteArray(picByte,0,picByte.length);                    return bitmap;                }            }        }        public static Bitmap reverseBitmapSize(Activity a,Bitmap bitmap){            int width = bitmap.getWidth();            int height = bitmap.getHeight();            //放大为屏幕的1/2大小            float screenWidth  = a.getWindowManager().getDefaultDisplay().getWidth();                 // 屏幕宽(像素,如:480px)            // 屏幕高(像素,如:800p)            float scaleWidth = screenWidth/2/width;            float scaleHeight = screenWidth/2/width;            // 取得想要缩放的matrix参数            Matrix matrix = new Matrix();            matrix.postScale(scaleWidth, scaleHeight);            // 得到新的图片            Bitmap newbm = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix,true);            return newbm;        }    }
0 0
原创粉丝点击