在Android FMX上,Canvas的DrawBitmap使用屏幕比例而不是像素

时间:2018-06-27 11:07:14

标签: android delphi

我想使用Canvas的DrawBitmap函数在TBitmap上绘制多个精灵。

我在设置TBitmap大小时考虑了屏幕比例:

AttachToComponentRegistration

我试图将我的精灵绘制在位图的中心:

IModule

在Windows上一切正常,但在Android(ScreenScale = 4)下,精灵以x4的大小绘制(与Windows相比),以x4绘制由目标RectF指定的X / Y位置偏移。

这似乎暗示在Android下,画布的DrawBitmap函数以ScreenScale而不是Pixel缩放起作用,这在任何地方都没有记录。

这是Delphi的错误吗?缺少文档?我在代码中做错了什么?

1 个答案:

答案 0 :(得分:2)

Drawbitmap(和所有画布操作)始终在虚拟像素级别而不是物理像素级别工作。您还需要考虑到,在虚拟像素级别工作时,您可能会看到抗锯齿伪像,因为虚拟像素和物理像素不一定对齐

通常仅在Tbitmap上工作并不关心屏幕比例,也许属性image.bitmap.screenscale或scale或类似的东西我不记得样品中的名称设置为4吗?