gpt4 book ai didi

android - 火猴 XE6 :How to use the full resolution on my adroiddevice?

转载 作者:太空狗 更新时间:2023-10-29 15:04:02 27 4
gpt4 key购买 nike

我正在构建 Firmonkey 移动应用程序。

我有一部手机 (Galaxy S3)。该设备的绝对分辨率为 1280 x 720。当我要求 canvas.width 时,我得到 640x360。我知道 Scale 是绝对坚决与 Canvas 大小之间的联系。

我的问题。当我在 Canvas 上绘制一条线时,thickness := 1,然后我希望线尽可能细。

如果我这样做:

if Self.Canvas.BeginScene then
try
Self.Canvas.Stroke.Thickness := 1;
Self.Canvas.Stroke.Kind := TBrushKind.Solid;
Self.Canvas.Fill.Color := TAlphaColorRec.Black;
Self.Canvas.Fill.Kind := TBrushKind.Solid;
for I := 1 to 20 do
Self.Canvas.DrawLine(PointF((I * 30), 0), PointF((I * 20), ClientHeight), 1);
finally
Self.Canvas.Canvas.EndScene;
end;

这些线条在我的显示器上不会同样“细”。如果编译到 Windows,它可以正常工作。

此外:如果我想显示尺寸与我的设备绝对分辨率 (1280x780) 完全匹配的图片,则该图片显示不完美,而是调整为较低的分辨率(等于 Canvas )...

那么我究竟该如何让我的 Canvas 访问我设备上的每个像素,这样我就可以自己控制每个像素???

我去过页面:http://www.fmxexpress.com/perfect-line-thickness-using-tcanvas-drawline-with-delphi-xe5-firemonkey-on-android-and-ios/但这是一个炒锅(这是行不通的)。我不帮助获得/使用绝对分辨率。

最佳答案

在您的情况下,Canvas.Scale 为 2。由于无法设置 Canvas.Scale,因此可以使用 Canvas.SetMatrix 反转缩放来完成使用 native 设备分辨率的绘图。

Canvas.SetMatrix(TMatrix.CreateScaling(1 / Canvas.Scale, 1 / Canvas.Scale) * Canvas.Matrix);

在此之后,您将以 native 设备分辨率进行绘制。

关于android - 火猴 XE6 :How to use the full resolution on my adroiddevice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com