Android Bitmap.createBitmap()用法示例
Android Bitmap.createBitmap() 用法全解析
在 Android 开发中,Bitmap.createBitmap()
是一个非常强大的方法,可以用来 创建新的位图,并且可以 进行旋转、缩放、平移、镜像翻转、裁剪等操作。本篇文章将详细介绍 Bitmap.createBitmap()
的各种用法。
1. Bitmap.createBitmap()
基础用法
1.1 创建一个空白 Bitmap
1 | val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) |
width
:Bitmap 的宽度。height
:Bitmap 的高度。Bitmap.Config.ARGB_8888
:像素格式,支持透明度。
用途:用于创建空白的
Bitmap
,然后通过Canvas
进行绘制。
2. 旋转(Rotate)
如果拍照后的图片方向不正确,可以使用 Matrix
进行旋转。
1 | fun rotateBitmap(bitmap: Bitmap, degree: Int): Bitmap { |
postRotate(degree)
:将图片旋转指定角度。
示例:旋转 90 度
1 | val rotatedBitmap = rotateBitmap(originalBitmap, 90) |
3. 缩放(Scale)
如果想要调整图片大小,可以使用 postScale()
。
1 | fun scaleBitmap(bitmap: Bitmap, sx: Float, sy: Float): Bitmap { |
示例:缩小 50%
1 | val scaledBitmap = scaleBitmap(originalBitmap, 0.5f, 0.5f) |
4. 平移(Translate)
可以使用 postTranslate()
来移动 Bitmap
位置。
1 | fun translateBitmap(bitmap: Bitmap, dx: Float, dy: Float): Bitmap { |
示例:右移 50px,下移 100px
1 | val translatedBitmap = translateBitmap(originalBitmap, 50f, 100f) |
5. 镜像翻转(Flip)
5.1 左右翻转(水平镜像)
1 | fun flipHorizontal(bitmap: Bitmap): Bitmap { |
5.2 上下翻转(垂直镜像)
1 | fun flipVertical(bitmap: Bitmap): Bitmap { |
示例:左右翻转
1 | val flippedBitmap = flipHorizontal(originalBitmap) |
6. 裁剪(Crop)
如果只想截取 Bitmap
的一部分,可以使用:
1 | fun cropBitmap(bitmap: Bitmap, x: Int, y: Int, width: Int, height: Int): Bitmap { |
示例:从 (50,50) 开始,裁剪 200x200 区域
1 | val croppedBitmap = cropBitmap(originalBitmap, 50, 50, 200, 200) |
7. 综合变换:旋转 + 缩放 + 平移
可以组合多个变换,比如 先旋转 45°,再缩小 80%,然后平移:
1 | fun transformBitmap(bitmap: Bitmap): Bitmap { |
示例:应用组合变换
1 | val transformedBitmap = transformBitmap(originalBitmap) |
8. 总结
操作 | 方法 | 示例 |
---|---|---|
创建空白 Bitmap | Bitmap.createBitmap(width, height, config) |
Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888) |
旋转 | postRotate(degree) |
postRotate(90f) |
缩放 | postScale(sx, sy) |
postScale(0.5f, 0.5f) |
平移 | postTranslate(dx, dy) |
postTranslate(50f, 100f) |
水平翻转 | postScale(-1f, 1f) |
postScale(-1f, 1f) |
垂直翻转 | postScale(1f, -1f) |
postScale(1f, -1f) |
裁剪 | Bitmap.createBitmap(bitmap, x, y, w, h) |
Bitmap.createBitmap(bitmap, 50, 50, 200, 200) |
📌 结论:
Bitmap.createBitmap()
不仅能创建 Bitmap,还能旋转、缩放、平移、镜像翻转、裁剪,几乎所有图片变换都可以搞定! 🚀
希望这篇文章能帮你更好地理解 Bitmap.createBitmap()
的使用! 😊
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.