前言

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