You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:Bitmap旋转后如何实现水平平移?

Android Matrix 实现先旋转后水平平移的Bitmap绘制

要实现先绕中心旋转45度、再水平向右平移100px的效果,核心是利用Matrix的postXXX方法在已有的旋转变换之后追加平移操作,具体步骤如下:

  • 先通过preRotate完成绕Bitmap中心的45度旋转:这个操作会将变换矩阵设置为“先执行旋转”
  • 再调用postTranslate(100f, 0f)追加水平平移:post系列方法会将新变换添加到现有变换的之后,确保平移是在旋转完成后对整个旋转后的Bitmap生效

完整代码示例:

// 假设已获取到宽高500px的Bitmap对象
Bitmap targetBitmap = ...;
Matrix transformMatrix = new Matrix();

// 绕Bitmap中心旋转45度
transformMatrix.preRotate(45, targetBitmap.getWidth() / 2f, targetBitmap.getHeight() / 2f);
// 旋转后水平向右平移100px(x轴偏移100,y轴无偏移)
transformMatrix.postTranslate(100f, 0f);

// 应用矩阵绘制Bitmap
canvas.drawBitmap(targetBitmap, transformMatrix, null);

需要注意的是,如果误用preTranslate(100f, 0f),会变成先平移、再旋转,最终的位置会和预期不符——因为旋转的中心还是原Bitmap的中心,平移后的Bitmap旋转后会偏离目标位置。因此必须用postTranslate来保证变换顺序正确。

内容的提问来源于stack exchange,提问作者totoaussi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:54:52