Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FireMonkey:Android上缺少抗锯齿和抖动效果_Android_Delphi_Firemonkey - Fatal编程技术网

FireMonkey:Android上缺少抗锯齿和抖动效果

FireMonkey:Android上缺少抗锯齿和抖动效果,android,delphi,firemonkey,Android,Delphi,Firemonkey,我在Delphi10.4(FMX)中用TArc创建了一个进度动画,但在Android上运行该应用程序时会出现一些奇怪的渲染行为 像TArc或TLine这样的简单形状似乎都没有抗锯齿功能。将t格式.Quality设置为HighQuality似乎没有效果 设置Arc1.Stroke.Cap:=TStrokeCap.Round似乎对Android没有影响。两端一点也不圆* TFloatAnimation似乎存在某种抖动问题,但我无法找到原因* *在Windows(10)上运行应用程序时,一切看

我在Delphi10.4(FMX)中用TArc创建了一个进度动画,但在Android上运行该应用程序时会出现一些奇怪的渲染行为

  • 像TArc或TLine这样的简单形状似乎都没有抗锯齿功能。将
    t格式.Quality
    设置为
    HighQuality
    似乎没有效果

  • 设置
    Arc1.Stroke.Cap:=TStrokeCap.Round
    似乎对Android没有影响。两端一点也不圆*

  • TFloatAnimation似乎存在某种抖动问题,但我无法找到原因*

  • *在Windows(10)上运行应用程序时,一切看起来都很好,但在Android上存在这些小故障,我想知道问题出在哪里。尤其是缺少抗锯齿。智能手机上的显示器是高密度的,但丢失的抗锯齿仍然清晰可见。以下是从Android设备和运行Windows 10的台式PC上捕获的视频:

    下面是一个示例代码:

    Unit1.fmx

    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 344
      ClientWidth = 427
      Fill.Color = claLightskyblue
      Fill.Kind = Solid
      FormFactor.Width = 320
      FormFactor.Height = 480
      FormFactor.Devices = [Desktop]
      DesignerMasterStyle = 0
      object Arc1: TArc
        Align = Center
        Size.Width = 60.000000000000000000
        Size.Height = 60.000000000000000000
        Size.PlatformDefault = False
        Stroke.Color = claWhite
        Stroke.Thickness = 5.000000000000000000
        Stroke.Cap = Round
        EndAngle = 90.000000000000000000
        object FloatAnimationStartAngle: TFloatAnimation
          Enabled = True
          Duration = 2.000000000000000000
          Loop = True
          PropertyName = 'StartAngle'
          StartValue = 0.000000000000000000
          StopValue = 360.000000000000000000
        end
        object FloatAnimationEndAngle: TFloatAnimation
          Enabled = True
          Duration = 2.000000000000000000
          OnFinish = FloatAnimationEndAngleFinish
          PropertyName = 'EndAngle'
          StartValue = 1.000000000000000000
          StopValue = 360.000000000000000000
        end
      end
    end
    
    Unit1.pas

    // ...stripped code here at top...
    implementation
    
    var
      increasing: Boolean = True;
    
    {$R *.fmx}
    
    procedure TForm1.FloatAnimationEndAngleFinish(Sender: TObject);
    begin
      FloatAnimationEndAngle.Enabled := false;
      FloatAnimationEndAngle.Inverse := not FloatAnimationEndAngle.Inverse;
    
      if increasing then
        FloatAnimationEndAngle.Duration := FloatAnimationEndAngle.Duration * 2.0
      else
        FloatAnimationEndAngle.Duration := FloatAnimationEndAngle.Duration / 2.0;
    
      increasing := not increasing;
      FloatAnimationEndAngle.Enabled := true;
      FloatAnimationEndAngle.Start();
    end;