2016-01-11 29 views
6

私はグライドを使用して画像をダウンロードして表示しますが、画像のサイズを変更しようとしましたが、私はランダムなサイズ(またはおそらくそのイメージの実際のサイズ)を取得します。オーバーライドによるグライド画像のサイズ変更は、画像のサイズを変更しません。

は、ここで私はちょうどビットマップ円形とセンター作物をレンダリンググライド

を経由してロードするため

CropCircleTransform

Glide.with(context) 
    .load(file.getUrl()) 
    .asBitmap() 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .centerCrop() 
    .transform(new CropCircleTransform(context)) 
    .override(dimen, dimen) 
    .into(new SimpleTarget<Bitmap>() { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
      bitmap = resource; 

      Log.info(resource.getWidth() + "x" + resource.getHeight()); 
     } 
     }); 
を使用したコードです。私はこのメソッドが問題を引き起こすが、イメージが指定された次元にサイズ変更されないかどうかだけをテストするためにそれを取り除こうとしました。

私のコードに問題がありますか?またはここでオーバーライドメソッドを誤解していますか?

EDIT:
オーバーライドを削除しようとしましたが、それがオーバーライドを使用する場合に発生するサイズ変更が実際にあります意味ので、大きなサイズの画像をロードしているようです。

どうして私は指定した実際の値にリサイズしませんか?

EDIT:
試料として、等、dimenの値は96であるが、画像のログに表示される寸法は97x97、117x117、154x154のようなもの

ことを意味しないため、オーバーライドメソッドの値は、使用される実際のディメンションではなく、サイズ変更のベースラインですか?

答えて

1

私は今このエラーに遭遇します。私のソリューションは次のようにイメージビューに設定されています:

  1. xmlファイルでイメージビューのサイズを設定します。
  2. Glide.with(context).load(path).centerCrop().crossFade().into(imageview);

それが動作します。

+0

あなたも、このようなImageViewのサイズを変更する必要があります。 – Leito

+0

ありがとう! – Woppi

0

私はちょうど同じ状況に遭遇しました。そして、これはグライドのバグだと思います。 はそのため、あなたはこのように自分でビットマップのサイズを変更する必要があります。ところで

Glide.with(context).load(url).asBitmap().into(new SimpleTarget<Bitmap>{ 

    @Override 
    public void onResourceReady(Bitmap resource,GlideAnimation<? extends Bitmap>(){ 
      // resize the bitmap 
      bitmap = resize(width,height); 
      imageView.setImageBitmap(bitmap); 
    } 

}) 

、そのようなので、上の「fitXY」、「centerCrop」、「fitCenter」となどImageViewののscaleTypeを、また作ることグライドがイメージのサイズを変更する方法との違い。

+0

"resize()"はどこから来たのですか? –

+1

それは私的な方法ですが、ポイントはありません。 –

+0

ありがとう@Qian Sijianhao –

0

`ImageView iv =(ImageView)findViewById(R.id.left);

int幅= 60; int height = 60;

LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width、height); iv.setLayoutParams(parms);

Glide.with(コンテキスト).LOAD(パス).centerCrop()クロスフェード()(ⅳ)に;。。 `

関連する問題