全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android利用Glide获取图片真正的宽高的实例

前言

有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下:

    //获取图片显示在ImageView后的宽高
    Glide.with(this)
        .load(imgUrl)
        .asBitmap()//强制Glide返回一个Bitmap对象
        .listener(new RequestListener<String, Bitmap>() {
          @Override
          public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) {
            Log.d(TAG, "onException " + e.toString());
            return false;
          }

          @Override
          public boolean onResourceReady(Bitmap bitmap, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Log.d(TAG, "width2 " + width); //400px
            Log.d(TAG, "height2 " + height); //400px
            return false;
          }
        }).into(mIv_img);

想要拿到图片真正的宽高,应该利用Glide的Target。如下:

    //获取图片真正的宽高
    Glide.with(this)
        .load(imgUrl)
        .asBitmap()//强制Glide返回一个Bitmap对象
        .into(new SimpleTarget<Bitmap>() {
          @Override
          public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Log.d(TAG, "width " + width); //200px
            Log.d(TAG, "height " + height); //200px
          }
        });

完整代码

MainActivity.java

public class MainActivity extends AppCompatActivity {

  private ImageView mIv_img;
  String imgUrl = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=523024675,1399288021&fm=117&gp=0.jpg";
  private String TAG = this.getClass().getSimpleName();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mIv_img = (ImageView) findViewById(R.id.iv_img);

    //获取图片真正的宽高
    Glide.with(this)
        .load(imgUrl)
        .asBitmap()//强制Glide返回一个Bitmap对象
        .into(new SimpleTarget<Bitmap>() {
          @Override
          public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Log.d(TAG, "width " + width); //200px
            Log.d(TAG, "height " + height); //200px
          }
        });

    //获取图片显示在ImageView后的宽高
    Glide.with(this)
        .load(imgUrl)
        .asBitmap()//强制Glide返回一个Bitmap对象
        .listener(new RequestListener<String, Bitmap>() {
          @Override
          public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) {
            Log.d(TAG, "onException " + e.toString());
            return false;
          }

          @Override
          public boolean onResourceReady(Bitmap bitmap, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {
            int width = bitmap.getWidth();
            int height = bitmap.getHeight();
            Log.d(TAG, "width2 " + width); //400px
            Log.d(TAG, "height2 " + height); //400px
            return false;
          }
        }).into(mIv_img);
  }

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  android:id="@+id/activity_main"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <ImageView
    android:id="@+id/iv_img"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_centerInParent="true"
    android:scaleType="centerCrop"
    android:src="@mipmap/ic_launcher"/>

</RelativeLayout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android获取图片宽高  # Android  # 获取图片的宽高  # Android项目实战之Glide 高斯模糊效果的实例代码  # Android 使用Glide加载网络图片等比例缩放的实现方法  # Android框架学习之Volley和Glide详解  # Android Glide 4.0+使用详解  # Android中Glide加载到RelativeLayout背景图方法示例  # Android中Glide获取图片Path、Bitmap用法详解  # Android将Glide动态加载不同大小的图片切圆角与圆形的方法  # Android中Glide库的使用小技巧总结  # Android添加glide库报错Error: Failed to resolve: com.and  # android中Glide实现加载图片保存至本地并加载回调监听  # 详解Android中Glide与CircleImageView加载圆形图片的问题  # Android如何使用Glide加载清晰长图  # 人会  # 去拿  # 大家多多  # 加载  # isFromMemoryCache  # bitmap  # onResourceReady  # int  # width  # getWidth  # TAG  # Log  # isFirstResource  # false  # return  # toString  # height  # GlideAnimation  # void  # SimpleTarget 


相关文章: C++时间戳转换成日期时间的步骤和示例代码  非常酷的网站设计制作软件,酷培ai教育官方网站?  广平建站公司哪家专业可靠?如何选择?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何在IIS中新建站点并配置端口与物理路径?  建站主机如何选?高性价比方案全解析  网站制作软件有哪些,制图软件有哪些?  如何用PHP快速搭建CMS系统?  网站图片在线制作软件,怎么在图片上做链接?  如何在Golang中指定模块版本_使用go.mod控制版本号  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站主机默认首页配置指南:核心功能与访问路径优化  北京建设网站制作公司,北京古代建筑博物馆预约官网?  西安大型网站制作公司,西安招聘网站最好的是哪个?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  建站之星后台管理系统如何操作?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何在Tomcat中配置并部署网站项目?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站之星后台密码如何安全设置与找回?  视频网站制作教程,怎么样制作优酷网的小视频?  如何选择香港主机高效搭建外贸独立站?  如何有效防御Web建站篡改攻击?  C#如何使用XPathNavigator高效查询XML  建站主机选购指南与交易推荐:核心配置解析  招商网站制作流程,网站招商广告语?  如何通过可视化优化提升建站效果?  网站制作公司,橙子建站是合法的吗?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  学校为何禁止电信移动建设网站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  c# await 一个已经完成的Task会发生什么  已有域名如何免费搭建网站?  html制作网站的步骤有哪些,iapp如何添加网页?  建站之星如何取消后台验证码生成?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  javascript基本数据类型及类型检测常用方法小结  宁波免费建站如何选择可靠模板与平台?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何将凡科建站内容保存为本地文件?  如何快速启动建站代理加盟业务?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  公司网站设计制作厂家,怎么创建自己的一个网站?  宝塔新建站点为何无法访问?如何排查?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何快速上传建站程序避免常见错误?  家具网站制作软件,家具厂怎么跑业务?  如何快速生成ASP一键建站模板并优化安全性? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。