Android利用Glide獲取圖片真正的寬高的實例
前言
有時候需要獲取網(wǎng)絡(luò)圖片的寬高來設(shè)置圖片顯示的大小,很多人會直接利用Glide的加載監(jiān)聽去拿圖片的寬高,但是這樣拿到的不是圖片真正的寬高,而是圖片顯示在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);
想要拿到圖片真正的寬高,應(yīng)該利用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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android項目實戰(zhàn)之Glide 高斯模糊效果的實例代碼
- Android 使用Glide加載網(wǎng)絡(luò)圖片等比例縮放的實現(xiàn)方法
- Android框架學(xué)習(xí)之Volley和Glide詳解
- Android Glide 4.0+使用詳解
- Android中Glide加載到RelativeLayout背景圖方法示例
- Android中Glide獲取圖片Path、Bitmap用法詳解
- Android將Glide動態(tài)加載不同大小的圖片切圓角與圓形的方法
- Android中Glide庫的使用小技巧總結(jié)
- Android添加glide庫報錯Error: Failed to resolve: com.android.support:support-annotations:26.0.2的解決
- android中Glide實現(xiàn)加載圖片保存至本地并加載回調(diào)監(jiān)聽
- 詳解Android中Glide與CircleImageView加載圓形圖片的問題
- Android如何使用Glide加載清晰長圖
相關(guān)文章
Android使用ViewDragHelper實現(xiàn)仿QQ6.0側(cè)滑界面(一)
這篇文章主要介紹了Android使用ViewDragHelper實現(xiàn)仿QQ6.0側(cè)滑界面(一)的相關(guān)資料,需要的朋友可以參考下2016-02-02
Android實現(xiàn)輸入法彈出時把布局頂上去和登錄按鈕頂上去的解決方法
這篇文章主要介紹了Android實現(xiàn)輸入法彈出時把布局頂上去和登錄按鈕頂上去的解決方法,需要的朋友可以參考下2017-11-11
Android studio無法創(chuàng)建類和接口和提示問題的完美解決辦法
這篇文章主要介紹了Android studio無法創(chuàng)建類和接口和提示問題解決辦法,內(nèi)容比較簡單,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-04-04
Android中RecyclerView實現(xiàn)橫向滑動代碼
這篇文章主要介紹了Android中RecyclerView實現(xiàn)橫向滑動代碼的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
Android開發(fā)實現(xiàn)的獲取sdcard大小及內(nèi)存大小工具類
這篇文章主要介紹了Android開發(fā)實現(xiàn)的獲取sdcard大小及內(nèi)存大小工具類,涉及Android針對手機硬件SD卡及內(nèi)存相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Android TCP 文件客戶端與服務(wù)器DEMO介紹
首先是服務(wù)器,服務(wù)器是在PC機上,JAVA運行環(huán)境,主要參考網(wǎng)上的代碼,自己做了支持多線程處理,代碼如下所示。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
Android中WebView與Js交互的實現(xiàn)方法
本文給大家介紹android中webview與js交互的實現(xiàn)方法,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)2016-05-05

