android 通过图片url获取宽高_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 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() {

@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() {

@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

android:id="@+id/activity_main"

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

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"/>

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


版权声明:本文为weixin_31563557原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。