我想傾斜(糾正我,如果這不是正確的詞)位圖,以便它看起來有深度。想要看到我所要求的一個好方法是星際大戰的信用如何傾向於顯示深度。僅在垂直方向傾斜位圖
我曾嘗試以下:
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();
太棒了!我不知道這件事。 – 2011-03-18 17:14:01
是的,在ApiDemos中有一個例子 - 旋轉3D動畫,它使用Camera類來完成此操作。創建一個新的android項目,並選擇「從現有示例創建項目」,選擇目標os然後ApiDemos。當應用程序運行時,選擇視圖>動畫> 3D轉換 – Lumis 2011-03-18 17:33:14
我不認爲動畫是要走的路。我正在基於恆定的設備傳感器值流(增強現實)操縱畫布上的圖形。有沒有其他方法可以做到這一點?我應該像使用OpenGL一樣使用3D圖形嗎?謝謝。 – mdupls 2011-03-19 19:25:57