栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

前言

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

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

   @Override
   public boolean onResourceReady(Bitmap bitmap, String model, Target 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() {
   @Override
   public void onResourceReady(Bitmap bitmap, GlideAnimation 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() {
   @Override
   public void onResourceReady(Bitmap bitmap, GlideAnimation 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() {
   @Override
   public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {
     Log.d(TAG, "onException " + e.toString());
     return false;
   }

   @Override
   public boolean onResourceReady(Bitmap bitmap, String model, Target 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




  



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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/158256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号