我正在 Android Studio 上使用示例秒针、小时和分钟自动收报机/时钟指针作为示例表盘。其中,Canvas 类的画线方法与 startX、startY、stopX 和 stopY 一起使用。我的问题是如何使用图片类似地实现这一点?我想到使用drawBitmap,它只有左侧和顶部,因此它旋转但范围太大并且不像手那样到位。 有没有办法使用图像而不是像drawLine方法中那样的线条?最重要的是,我需要使用图像而不是线条作为时钟指针。
谢谢!
最佳答案
您应该使用Canvas.save
、Canvas.rotate
和Canvas.restore
。想象一下,您总是在同一个位置绘制东西,但底层 Canvas 正在旋转,因此您将在正确的位置绘制。考虑一下圣诞老人追踪者的例子:
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();
}
它不会绘制手,而是绘制表盘上的云,但它应该为您提供一个示例,说明您需要尝试做什么。
关于Android Wear 图片滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869971/