我在 Android Studio 上使用示例秒针、小时针和分钟针/时钟指针作为示例表盘。在那里,Canvas 类的画线方法与 startX、startY、stopX 和 stopY 一起使用。我的问题是如何使用图片类似地实现这一点?我想使用只有左和上的drawBitmap,所以它旋转但太宽了,不像手那样到位。有什么方法可以使用图像而不是 drawLine 方法中的线?底线是我需要使用图像而不是线作为时钟指针。
谢谢!
我在 Android Studio 上使用示例秒针、小时针和分钟针/时钟指针作为示例表盘。在那里,Canvas 类的画线方法与 startX、startY、stopX 和 stopY 一起使用。我的问题是如何使用图片类似地实现这一点?我想使用只有左和上的drawBitmap,所以它旋转但太宽了,不像手那样到位。有什么方法可以使用图像而不是 drawLine 方法中的线?底线是我需要使用图像而不是线作为时钟指针。
谢谢!
您应该使用Canvas.save
,Canvas.rotate
和Canvas.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();
}
它不画手,而是画表盘上的云彩,但它应该给你一个你需要尝试做的例子。