2014-10-28 39 views
1

正如您所见,Windows平台上的形状组件正常显示,非常流畅(包括线条,角落和渐变效果)。FMX形状组件无法正确显示在Android平台上

enter image description here

但在Android平台上,你就会得到一个不能接受的结果:行不再光滑,边角不能被关闭,梯度变成全黑。

enter image description here

如何发生的?以及如何解决它?

这里是.fmx文件内容:

object Form1: TForm1 
    Left = 0 
    Top = 0 
    Caption = 'Form1' 
    ClientHeight = 480 
    ClientWidth = 640 
    FormFactor.Width = 320 
    FormFactor.Height = 480 
    FormFactor.Devices = [Desktop] 
    DesignerMasterStyle = 0 
    object RoundRect1: TRoundRect 
    Position.X = 40.000000000000000000 
    Position.Y = 16.000000000000000000 
    Size.Width = 153.000000000000000000 
    Size.Height = 65.000000000000000000 
    Size.PlatformDefault = False 
    Stroke.Color = claMediumslateblue 
    Stroke.Thickness = 8.000000000000000000 
    end 
    object Pie1: TPie 
    Position.X = 32.000000000000000000 
    Position.Y = 96.000000000000000000 
    Size.Width = 153.000000000000000000 
    Size.Height = 129.000000000000000000 
    Size.PlatformDefault = False 
    Stroke.Color = claChocolate 
    Stroke.Thickness = 8.000000000000000000 
    EndAngle = -90.000000000000000000 
    end 
    object Arc1: TArc 
    Position.X = 48.000000000000000000 
    Position.Y = 224.000000000000000000 
    Size.Width = 169.000000000000000000 
    Size.Height = 161.000000000000000000 
    Size.PlatformDefault = False 
    Stroke.Color = claDeeppink 
    Stroke.Thickness = 10.000000000000000000 
    StartAngle = 30.000000000000000000 
    EndAngle = 180.000000000000000000 
    end 
    object Arc2: TArc 
    Position.X = 16.000000000000000000 
    Position.Y = 184.000000000000000000 
    Size.Width = 233.000000000000000000 
    Size.Height = 233.000000000000000000 
    Size.PlatformDefault = False 
    Stroke.Kind = Gradient 
    Stroke.Gradient.Points = < 
     item 
     Color = xFF297E72 
     Offset = 0.000000000000000000 
     end 
     item 
     Color = xFFA6F2BD 
     Offset = 1.000000000000000000 
     end> 
    Stroke.Gradient.StartPosition.X = 0.500000000000000000 
    Stroke.Gradient.StartPosition.Y = 1.000000000000000000 
    Stroke.Gradient.StopPosition.X = 0.499999970197677600 
    Stroke.Gradient.StopPosition.Y = 0.000000000000000000 
    Stroke.Thickness = 20.000000000000000000 
    Stroke.Cap = Round 
    EndAngle = -90.000000000000000000 
    end 
end 

回答

2

我相信它说的笔画(线)梯度不要任何东西,但Windows的2D渲染的工作文档。但是,我无法找到它说的地方。如果你想在Windows版本使用3D,你可以这样做:

initialization 
FMX.Types.GlobalUseGPUCanvas := True; 

您还可以通过overriding the rendering parameters开启多重采样。最后,如果需要,您可以使用native Android component作为原生绘图。

+0

仍然无法解决我的问题。 – Leo 2014-10-29 03:56:58

+0

您是否需要在运行时更改对象?就像你在做绘画一样?如果没有,有办法将Windows外观缓存到位图。 – FMXExpress 2014-10-31 22:36:18

+0

是的,我需要在运行时更改这些对象。 – Leo 2014-11-07 01:18:09