2017-09-08 144 views
0

我對android中圖片的處理方式有很多疑問,我希望看看您是否可以解決它們。使用ImageView滑動圖片來調整圖片的大小Android

在這一點上,我有一個圖像,佔用高達320 dp和match_parent寬度,這是約60%的屏幕。 這是帶有Glide的負載圖像,我個人擁有1080的一些圖像。

我試圖做centroCrop和fitXY,但總是使圖像變形。我知道的第一種類型會剪切圖像,但第二種類型適合尺寸,但會使圖像變大或變寬。

有沒有什麼辦法,用Glide插入它,看看它是什麼? 我有什麼特性可以觸及ImageView以及哪個Glide?

<ImageView 
      android:id="@+id/img" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:nestedScrollingEnabled="false" 
      app:layout_collapseMode="parallax" 
      android:scaleType="fitXY" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

在此先感謝。

+0

使用'.override(w,h)'作爲它。 – Piyush

+0

而我有沒有1080的圖像?例如與一個用戶。他們有不同大小的圖像。 – Traif

+0

@Traif使用Glide檢查自定義轉換。 – Raghunandan

回答

0
Glide 
    .with(context) 
    .load(path) 
    .override(600, 200) 
    .centerCrop() 
    .into(imageViewResizeCenterCrop); 

@Raghunandan是對的,你應該嘗試轉變你自己的方式。

0

如果要加載圖像,而無需使用滑翔那麼你可以使用scaleType「fitCenter」或「centerInside」如下 -

<ImageView 
     android:id="@+id/img" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:nestedScrollingEnabled="false" 
     app:layout_collapseMode="parallax" 
     android:scaleType="centerInside" 
     app:layout_scrollFlags="scroll|enterAlways" /> 

有了滑翔你可以使用倍率(W,H)。當你使用覆蓋(w,h)時,glide會生成一個新的帶有覆蓋(w,h)中提及的寬度和高度的位圖,然後將圖像加載到ImageView中。您可以使用fitCenter()來對齊圖像。您也可以使用diskCacheStrategy()。如果你不使用它,Glide將只捕獲新生成的位圖。如果你想捕捉原始圖像,然後使用diskCacheStrategy(DiskCacheStrategy.ALL)。

Glide.with(context) 
      .load(image_path) 
      .override(800, 400) 
      .fitCenter() 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .into(imageView) 

我希望這會有所幫助。