android 获取网络图片的宽高,获取网络图片的真实宽高

import android.graphics.BitmapFactory;

import android.os.Handler;

import android.os.Message;

import androidx.annotation.NonNull;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import cn.forward.androids.utils.LogUtil;

public class GitImageOriginWidthAndHeight {

static Handler handler = new Handler(){

@Override

public void handleMessage(@NonNull Message msg) {

super.handleMessage(msg);

}

};

static ExecutorService mPicFixThreadPool = Executors.newCachedThreadPool();

public static void getPicSize(String url, OnPicListener listener) {

mPicFixThreadPool.execute(() -> {

HttpURLConnection connection;

try {

connection = (HttpURLConnection) new URL(url).openConnection();

InputStream inputStream = connection.getInputStream();

int[] imageSize = getImageSize(inputStream);

handler.post(() -> listener.onImageSize(imageSize[0], imageSize[1]));

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

});

}

private static int[] getImageSize(InputStream is) {

BitmapFactory.Options options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

BitmapFactory.decodeStream(is, null, options);

int[] size = new int[2];

size[0] = options.outWidth;

size[1] = options.outHeight;

LogUtil.i("--------------------width = " + size[0] + ",height = " + size[1]+"--------------------");

return size;

}

public interface OnPicListener {

void onImageSize(int width, int height);

}

}

//1,创建一个名为GitImageOriginWidthAndHeight的类将上面的内容复制到改类中

//2,在用到用的地方调用GitImageOriginWidthAndHeight.getPicSize()第一个参数是图片url路径,第二个参数为new GitImageOriginWidthAndHeight.OnPicListener回调接口

回调理解里面的两个参数就是图片的真实宽高.