有时我们需要在加载显示网络图片前拿到图片的宽高对控件做些处理,比如针对过长的图片只显示部分,点击后在展示全图,那么怎样拿到网络图片的宽高呢?

方式一、使用HttpURLConnection + BitmapFactory.Options

通过使用BitmapFactory.Options只解码边界的方式,避免将整个图片资源加载到内存而导致获取过多图片宽高时造成OOM

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);mMainHandler.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);}

方式二、使用Glide

Glide.with(mContext).asBitmap().load(url).into(object : BitmapImageViewTarget(imageView) {override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {super.onResourceReady(resource, transition)val width = resource.widthval height = resource.heightLog.i("kkk", "width = $width,height = $height")}
})

方式三

待添加...

Android获取网络图片的宽高相关推荐

  1. android 获取屏幕的宽高

    今天,讲讲android如何获取屏幕的宽高. // 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManag ...

  2. iOS 获取网络图片的宽高

    有时候需要知道图片的宽高去设置相应的位置,SDWebImage里面的方法就可以直接得到: [[SDWebImageDownloader sharedDownloader]downloadImageWi ...

  3. android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...

    目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...

  4. Android获取手机屏幕宽高

    //如果是获取单位是像素,可以如下:Display display = getWindowManager().getDefaultDisplay(); Point size = new Point() ...

  5. android获取控件宽和高

    Android获取控件宽高 在项目中用到了测量控件的宽和高,这个在Activity的onCreate去使用控件的getHeight()和getWidth()方法去获取是会失败的,返回的都是0.这是由于 ...

  6. java获取网络图片的宽和高

    /*** 获取网络图片的宽和高* @param url* @return*/public static String getWidthAndHeight(String url) {try {Input ...

  7. android linearlayout 方法,Android基础之获取LinearLayout的宽高

    前言 看到题目获取LinearLayout宽高,或许大家想到的解决方法如下: public void onCreate(Bundle savedInstanceState) { super.onCre ...

  8. java 获取图片的宽高

    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): 通过java获取图片的宽高 获取本地文件的图片尺寸: import java.awt.image.BufferedIma ...

  9. 当View为GONE状态时获取View的宽高

    首先要明白一点就是一般情况下,我们在Activity里面的onCreate里面获取View宽高,可以采用: (1)View布局完成的监听 button.getViewTreeObserver().ad ...

最新文章

  1. django两个服务器之间的通讯
  2. css加载会造成阻塞吗?
  3. java垃圾回收之循环引用
  4. 先思再行 闭着眼睛编程
  5. servlet乱码问题
  6. 揭秘微信朋友圈这种信息推流背后的系统设计
  7. STC单片机烧录时的坑不要踩
  8. 1.8Linux下的软件管理
  9. Slate轨道工具使用(四)—根动画与位置
  10. uniapp扫描二维码问题
  11. js设计程序实现摄氏度和华氏度转换
  12. java计算时间差 (日时分秒)
  13. GPU服务器与CPU服务器的区别,如何选择GPU服务器
  14. python安装结巴_python jieba(结巴)小模块精讲
  15. 为什么90%的IT人员都不适合做老大?
  16. word自动生成目录 页码不能右对齐问题
  17. MFC的导航窗格浮窗设计
  18. C语言程序设计 现代方法(第2版)pdf
  19. 华尔街见闻下操作mysql_GitHub - boshengw-shzq/reainl: 华尔街见闻和新浪财经新闻采集...
  20. Jetty修改默认端口

热门文章

  1. java在windows下启动jar包使用utf-8格式
  2. python redis使用
  3. 前端资源压缩合并maven插件之wro4j
  4. yum doesn‘t have enough cached data to continue
  5. nginx转发https:SSL_do_handshake() failed
  6. Android 抖音爱心动画,Android自定义View实现抖音飘动红心效果
  7. 中小企业网管管理完全篇 [转]
  8. 北京2022年高考数学题纯手工排版
  9. 为什么在牛市入市,反而会亏钱?
  10. Policy-Based Method RL