2

我在 Android Studio 上使用示例秒针、小时针和分钟针/时钟指针作为示例表盘。在那里,Canvas 类的画线方法与 startX、startY、stopX 和 stopY 一起使用。我的问题是如何使用图片类似地实现这一点?我想使用只有左和上的drawBitmap,所以它旋转但太宽了,不像手那样到位。有什么方法可以使用图像而不是 drawLine 方法中的线?底线是我需要使用图像而不是线作为时钟指针。

谢谢!

4

1 回答 1

2

您应该使用Canvas.save,Canvas.rotateCanvas.restore。想象一下,你总是在同一个地方画东西,但是底层的画布正在旋转,所以你会在正确的地方画。考虑 Santa Tracker 中的示例:

for (int i = 0; i < mCloudBitmaps.length; i++) {
    canvas.save();
    canvas.rotate(mCloudDegrees[i], centerX, centerY);
    float r = centerX - (timeElapsed / (mCloudSpeeds[i])) % centerX;
    mCloudFilterPaints[i].setAlpha((int) (r / centerX * 255));
    canvas.drawBitmap(mCloudBitmaps[i], centerX, centerY - r,
        mCloudFilterPaints[i]);
    canvas.restore(); 
}

它不画手,而是画表盘上的云彩,但它应该给你一个你需要尝试做的例子。

于 2015-01-10T01:06:50.353 回答