2017-09-08 8 views
0

アンドロイドでの画像処理に疑問があります。あなたがそれらを解決できるかどうかを確かめたいと思っていました。イメージビューアでグライドで画像サイズを変更するAndroid

この時点では、画面の約60%である320dpの高さと、match_parentの幅を占める画像があります。 私が個人的に持っている1080のいくつかの画像の、グライドによる負荷のこの画像。

私はcentroCropとfitXYを作成しようとしましたが、常に画像を変形しました。私が知っている最初のタイプはイメージをカットしますが、2番目のタイプはサイズに適合しますが、イメージを大きくまたは大きく変形させます。

グライドを挿入してそのまま見ることはできますか? ImageViewにはどのような特性がありますか?

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

グライドを使用すると、(H、W)のオーバーライドを使用することができます。 override(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) 

これが役立ちます。

関連する問題