我想歪斜(如果这不是正确的词,请纠正我)位图,使其看起来有深度。可视化我所要求的一个好方法是星球大战的学分如何倾斜以显示深度。
我尝试了以下方法:
canvas.getMatrix().postSkew(kx,ky,px,py);
和
canvas.skew(sx,sy);
但我没有取得太大的成功。上述方法似乎总是将位图转换为平行四边形。有没有办法将位图转换为梯形?
这是我从 Romain 指出的示例中提取的代码片段。
canvas.rotate(-mOrientation[0] + mHeading, mCenterX, mCenterY);
camera.save();
if (mReverse) {
camera.translate(0.0f, 0.0f, mDepthZ * interpolatedTime);
} else {
camera.translate(0.0f, 0.0f, mDepthZ * (1.0f - interpolatedTime));
}
camera.rotateX(mOrientation[1]);
camera.applyToCanvas(canvas);
canvas.drawPath(mPath, mPaint);
canvas.drawCircle(mCenterX, mCenterY, mRadius - 37, mPaint);
camera.restore();