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