Glide入門チュートリアル-21.画像を回転する方法
4168 ワード
Glide-画像を回転する方法
原文:How to Rotate Images作者:Norman Peitek翻訳:Dexter 0218
先日、Picassoがこの即学即用機能を提供するため、Glideで画像を回転する方法について質問がありました.残念なことに、Glideはこの方法の呼び出しを提供していませんが、このブログでは、ほとんど同じように簡単にする方法を示します.Glideの詳細が必要な場合は、ブログの記事リストのトピックを参照してください.
文/サインするとすぐ着きます(簡書の作者)
テキストリンク:http://www.jianshu.com/p/a0eb280af7ae
著作権は作者の所有で、転載は作者に連絡して授権を得て、そして“簡書の作者”を表示してください.
Glideで画像を回転する方法
実際にはandroid.graphics.Matrix
種類がちょうど私たちに必要なものを提供しています.画像を回転させるコードは、実際には非常にストレートです.Bitmap toTransform = ... // your bitmap source
Matrix matrix = new Matrix();
matrix.postRotate(rotateRotationAngle);
Bitmap.createBitmap(toTransform, 0, 0, toTransform.getWidth(), toTransform.getHeight(), matrix, true);
特にGlideを使用する場合、BitmapTransformation
に包装されています.public class RotateTransformation extends BitmapTransformation {
private float rotateRotationAngle = 0f;
public RotateTransformation(Context context, float rotateRotationAngle) {
super( context );
this.rotateRotationAngle = rotateRotationAngle;
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
Matrix matrix = new Matrix();
matrix.postRotate(rotateRotationAngle);
return Bitmap.createBitmap(toTransform, 0, 0, toTransform.getWidth(), toTransform.getHeight(), matrix, true);
}
@Override
public String getId() {
return "rotate" + rotateRotationAngle;
}
}
このクラスで何が起こっているのかまだ分からない場合は、カスタム変換の文章の紹介を振り返ってみると、知っておく必要があるものが見えます.
最後に、新しい変換のいくつかの例を見てみましょう.private void loadImageOriginal() {
Glide
.with( context )
.load( eatFoodyImages[0] )
.into( imageView1 );
}
private void loadImageRotated() {
Glide
.with( context )
.load( eatFoodyImages[0] )
.transform( new RotateTransformation( context, 90f ))
.into( imageView3 );
}
もちろん、2番目のパラメータを変更して、どの程度回転するかを設定することができます.動的に設定できます!
Glideで画像を回転させる必要があります.ここでは、ライブラリで直接提供されていなくても、すべてのコードと知識を提供します.もしこれがあなたに役に立つならば、私たちはあなたに以下の友好的な評論に感謝します!
文/サインするとすぐ着きます(簡書の作者)
テキストリンク:http://www.jianshu.com/p/a0eb280af7ae
著作権は作者の所有で、転載は作者に連絡して授権を得て、そして“簡書の作者”を表示してください.
Bitmap toTransform = ... // your bitmap source
Matrix matrix = new Matrix();
matrix.postRotate(rotateRotationAngle);
Bitmap.createBitmap(toTransform, 0, 0, toTransform.getWidth(), toTransform.getHeight(), matrix, true);
public class RotateTransformation extends BitmapTransformation {
private float rotateRotationAngle = 0f;
public RotateTransformation(Context context, float rotateRotationAngle) {
super( context );
this.rotateRotationAngle = rotateRotationAngle;
}
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
Matrix matrix = new Matrix();
matrix.postRotate(rotateRotationAngle);
return Bitmap.createBitmap(toTransform, 0, 0, toTransform.getWidth(), toTransform.getHeight(), matrix, true);
}
@Override
public String getId() {
return "rotate" + rotateRotationAngle;
}
}
private void loadImageOriginal() {
Glide
.with( context )
.load( eatFoodyImages[0] )
.into( imageView1 );
}
private void loadImageRotated() {
Glide
.with( context )
.load( eatFoodyImages[0] )
.transform( new RotateTransformation( context, 90f ))
.into( imageView3 );
}