Android 穿图片行情
Android Wear Picture ticker
我在 Android Studio 上使用示例秒、小时和分钟 ticker/clock 指针作为示例表盘。在那里,Canvas class 的画线方法与 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 Studio 上使用示例秒、小时和分钟 ticker/clock 指针作为示例表盘。在那里,Canvas class 的画线方法与 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();
}
它没有画手,而是画了表盘上的云,但它应该给你一个例子,说明你需要尝试做什么。