Androidは、Glideを使用して、ネットワーク画像などのスケールアップを実現します。
Androidの画像をロードする時、携帯電話のスクリーンが制限されているため、多くの大図がロードされてきた時、固定された幅などの比率で高さをスケーリングすることが要求されます。画像のサイズ比率は相応のスケーリングを得られますが、画像は変形していません。明らかにアンディ:scaleTypeによっては実現できません。たくさんの制限がありますので、自分でアルゴリズムを書かなければなりません。
Glideによるスケーリング
実はglideはこのような方法を提供しました。具体的にはTrans formationを引き継ぐsets Resource方法を示します。
(1)まずネットワークまたはローカル画像の幅の高さを取得する
(2)取得に必要な目標幅
(3)割合で目標の高さを得る
(4)目標の幅の高さに合わせて新しい図を作成する
締め括りをつける
以上は小编で绍介したAndroidがGlideを使ってネットの画像をロードするなどスケールアップの実现方法です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
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を使ってネットの画像をロードするなどスケールアップの実现方法です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。