http://mrfu.me/2016/02/28/Glide_How_to_Rotate_Images/
如何用 Glide 旋转图片
事实上,android.graphics.Matrix 类提供了我们所需要的准确办法(甚至更多办法)。这个代码片段就是用来旋转图像的:
Bitmap toTransform = ... // your bitmap sourceMatrix 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;}@Overrideprotected 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);}@Overridepublic String getId() {return "rotate" + rotateRotationAngle;}
}
如果你不知道上面这个类发生了,去看看我们介绍的 Custom Transformations,它将告诉你所有你要知道的。
最后,让我们看看新的转换的实例:
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 );
}
当然,你可以改变第二个参数来设置你需要的旋转的角度。你甚至可以动态设置它!
这应该提供了所有的代码和知识你需要在 Glide 中旋转的图片,即使它没有直接在库中提供。如果这对你来说有用的,在评论中让我们知道呗!
关注我的公众号,轻松了解和学习更多技术