从返回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;
}
}