Delphi Firemonkey:Android和Windows上的不同渲染

Delphi Firemonkey:Android和Windows上的不同渲染,android,windows,delphi,firemonkey,Android,Windows,Delphi,Firemonkey,我们有以下代码 if aForceRebuild or (not FHasBitmap) then try if TFile.Exists(FFileName) then begin FRectangle.WrapMode:=TImageWrapMode.Fit; //Try to force correct drawing in Android FRectangle.Bitmap.LoadThumbnailFromFile(FFilename,

我们有以下代码

  if aForceRebuild or (not FHasBitmap) then
  try
    if TFile.Exists(FFileName) then
    begin
      FRectangle.WrapMode:=TImageWrapMode.Fit; //Try to force correct drawing in Android
      FRectangle.Bitmap.LoadThumbnailFromFile(FFilename, FRectangle.Width-THUMB_MARGIN, FRectangle.Height-THUMB_MARGIN);
      FHasBitmap:=True;
    end
  except
    Raise;
  end;
…在Windows上正确绘制位图,保持加载缩略图的比例,而在Android上,输出图像拉伸以覆盖整个矩形

为了在任何平台上进行正确的渲染(即保持纵横比),我们如何解决这个问题

注:

  • FRectangle是一个
    TImage
    对象
  • FRectangle.WrapMode:=TImageWrapMode.Fit
    也在
    FRectangle
    的创建中调用。不走运
  • 版本:Delphi XE6、Windows 7、Android 4.2

自己在画布上绘制位图,并计算正确的绘制矩形您可能需要自己计算正确的比例/边界框,但您可以吗?好的bug报告应该得到解决。默认情况下Firemonkey不会使用3D绘制Windows版本。而Android和IOS版本是用OpenGL绘制的。因此,渲染是不同的。如果愿意,您可以在Windows上启用3D,但默认情况下它不执行抗锯齿功能。@FMXExpress:我理解这一点,但我不想让Windows与Android的方式相同,而是相反。Android有错误的AFAI渲染。您可以尝试使用本机控件进行绘制: