前言

有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用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小时内与您取得联系。