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

从返回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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值