全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何选择美橙互联多站合一建站方案?  建站之星安装后界面空白如何解决?  建站之星导航菜单设置与功能模块配置全攻略  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  网站微信制作软件,如何制作微信链接?  ,南京靠谱的征婚网站?  如何制作算命网站,怎么注册算命网站?  如何彻底删除建站之星生成的Banner?  如何打造高效商业网站?建站目的决定转化率  如何在搬瓦工VPS快速搭建网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  焦点电影公司作品,电影焦点结局是什么?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  全景视频制作网站有哪些,全景图怎么做成网页?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  网站专业制作公司有哪些,做一个公司网站要多少钱?  智能起名网站制作软件有哪些,制作logo的软件?  南京网站制作费用,南京远驱官方网站?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  成都网站制作报价公司,成都工业用气开户费用?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  如何在腾讯云服务器上快速搭建个人网站?  c++ stringstream用法详解_c++字符串与数字转换利器  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何用虚拟主机快速搭建网站?详细步骤解析  寿县云建站:智能SEO优化与多行业模板快速上线指南  自助网站制作软件,个人如何自助建网站?  ,柠檬视频怎样兑换vip?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  电商平台网站制作流程,电商网站如何制作?  如何在建站之星绑定自定义域名?  相册网站制作软件,图片上的网址怎么复制?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  5种Android数据存储方式汇总  如何通过NAT技术实现内网高效建站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站主机如何选?性能与价格怎样平衡?  javascript基本数据类型及类型检测常用方法小结  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  利用JavaScript实现拖拽改变元素大小  如何在IIS7中新建站点?详细步骤解析  建站上传速度慢?如何优化加速网站加载效率?  如何通过建站之星自助学习解决操作问题?  如何选择CMS系统实现快速建站与SEO优化?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  建站之星如何助力企业快速打造五合一网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  北京网站制作公司哪家好一点,北京租房网站有哪些? 

您的项目需求

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