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

Android使用drawBitmap绘制Bitmap时如何调整Sprite精灵的y轴坐标位置

问题原因

  • 目标绘制矩形dst的参数逻辑冲突:你将top参数硬编码为固定值10,但bottom参数使用了成员变量y + height,二者逻辑不统一,同时你定义的y变量没有被用到位置计算里,修改自然不会生效。
  • 源矩形src计算错误:你裁剪单帧的宽度计算和你定义的单帧宽度width不匹配,可能导致精灵帧显示异常、出现透明偏移,让你误以为位置调整没有生效。

修复步骤

  1. 修正源矩形src的计算逻辑,保证单帧裁剪正确,避免拉伸或内容偏移:
// draw方法内src相关代码修改为
int srcX = currentFrame * width;
int srcY = 0; // 你只有1行动画帧,固定为0即可
Rect src = new Rect(srcX, srcY, srcX + width, srcY + height);
  1. 修正目标矩形dst的逻辑,统一使用成员变量控制位置,去掉硬编码的固定值:
// dst修改为
Rect dst = new Rect(x, y, x + width, y + height);
  1. 调整初始位置直接修改成员变量的初始值即可,比如需要向下移动150像素,就把成员变量声明改为:
private int y = 150; // 数值按需调整,越大精灵位置越靠下

如果后续需要做Y轴方向的移动逻辑,在update方法里补充y的数值更新代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:18:03