Androidは、Glideを使用して、ネットワーク画像などのスケールアップを実現します。


Androidの画像をロードする時、携帯電話のスクリーンが制限されているため、多くの大図がロードされてきた時、固定された幅などの比率で高さをスケーリングすることが要求されます。画像のサイズ比率は相応のスケーリングを得られますが、画像は変形していません。明らかにアンディ:scaleTypeによっては実現できません。たくさんの制限がありますので、自分でアルゴリズムを書かなければなりません。
Glideによるスケーリング
実はglideはこのような方法を提供しました。具体的にはTrans formationを引き継ぐsets Resource方法を示します。
(1)まずネットワークまたはローカル画像の幅の高さを取得する
(2)取得に必要な目標幅
(3)割合で目標の高さを得る
(4)目標の幅の高さに合わせて新しい図を作成する

/**
 * ===========================================
 *     :1.0
 *     :        
 * <p>glide    .</p>
 * ===========================================
 */
public class TransformationUtils extends ImageViewTarget<Bitmap> {
  private ImageView target;
  public TransformationUtils(ImageView target) {
    super(target);
    this.target = target;
  }
  @Override
  protected void setResource(Bitmap resource) {
    view.setImageBitmap(resource);
    //       
    int width = resource.getWidth();
    int height = resource.getHeight();
    //  imageView  
    int imageViewWidth = target.getWidth();
    //      
    float sy = (float) (imageViewWidth * 0.1) / (float) (width * 0.1);
    //            
    int imageViewHeight = (int) (height * sy);
    ViewGroup.LayoutParams params = target.getLayoutParams();
    params.height = imageViewHeight;
    target.setLayoutParams(params);
  }
}
その後Glideにtransformを設置します。

Glide.with(this)
          .load(newActiviteLeftBannerUrl)
          .asBitmap()
          .placeholder(R.drawable.placeholder)
          .into(new TransformationUtils(target));
Trans formationこれはGlideの非常に強力な機能です。ロード画像->into ImageViewの間で、これはペア画像に対して一連の変換を行うことができます。例えば、写真のガウスぼかし、円角追加、度灰処理、円形画像などはTrans formationで完成できます。
締め括りをつける
以上は小编で绍介したAndroidがGlideを使ってネットの画像をロードするなどスケールアップの実现方法です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。