Android利用Glide获取图片真正的宽高的实例
前言
有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下:
//获取图片显示在ImageView后的宽高 Glide.with(this) .load(imgUrl) .asBitmap()//强制Glide返回一个Bitmap对象 .listener(newRequestListener(){ @Override publicbooleanonException(Exceptione,Stringmodel,Target target,booleanisFirstResource){ Log.d(TAG,"onException"+e.toString()); returnfalse; } @Override publicbooleanonResourceReady(Bitmapbitmap,Stringmodel,Target target,booleanisFromMemoryCache,booleanisFirstResource){ intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); Log.d(TAG,"width2"+width);//400px Log.d(TAG,"height2"+height);//400px returnfalse; } }).into(mIv_img);
想要拿到图片真正的宽高,应该利用Glide的Target。如下:
//获取图片真正的宽高 Glide.with(this) .load(imgUrl) .asBitmap()//强制Glide返回一个Bitmap对象 .into(newSimpleTarget(){ @Override publicvoidonResourceReady(Bitmapbitmap,GlideAnimationglideAnimation){ intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); Log.d(TAG,"width"+width);//200px Log.d(TAG,"height"+height);//200px } });
完整代码
MainActivity.java
publicclassMainActivityextendsAppCompatActivity{ privateImageViewmIv_img; StringimgUrl="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=523024675,1399288021&fm=117&gp=0.jpg"; privateStringTAG=this.getClass().getSimpleName(); @Override protectedvoidonCreate(BundlesavedInstanceState){ 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(newSimpleTarget(){ @Override publicvoidonResourceReady(Bitmapbitmap,GlideAnimationglideAnimation){ intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); Log.d(TAG,"width"+width);//200px Log.d(TAG,"height"+height);//200px } }); //获取图片显示在ImageView后的宽高 Glide.with(this) .load(imgUrl) .asBitmap()//强制Glide返回一个Bitmap对象 .listener(newRequestListener (){ @Override publicbooleanonException(Exceptione,Stringmodel,Target target,booleanisFirstResource){ Log.d(TAG,"onException"+e.toString()); returnfalse; } @Override publicbooleanonResourceReady(Bitmapbitmap,Stringmodel,Target target,booleanisFromMemoryCache,booleanisFirstResource){ intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); Log.d(TAG,"width2"+width);//400px Log.d(TAG,"height2"+height);//400px returnfalse; } }).into(mIv_img); } }
activity_main.xml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。