美文网首页
获取网络图片的真实宽高

获取网络图片的真实宽高

作者: 加油小李 | 来源:发表于2020-12-22 23:28 被阅读0次

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回调接口
回调理解里面的两个参数就是图片的真实宽高.

相关文章

网友评论

      本文标题:获取网络图片的真实宽高

      本文链接:https://www.haomeiwen.com/subject/crienktx.html