簡體   English   中英

在平台上繪制形狀筆划的問題 Android

[英]Issues drawing the stroke of shapes on platform Android

我是使用 Delphi 11 和 FMX 框架進行 Android 應用程序開發的新手。

我想使用帶框架的矩形作為面板的樣式,想知道如何在平台 Android 上繪制帶圓角和其他形狀的矩形框架(見圖)。 在 Windows 上一切正常。 對於填充,到目前為止,我還沒有在 Android 上發現任何繪圖錯誤。

對於矩形,角會變形並且框架有時不會閉合。

通常,對於所有形狀( TCircleTArc ),不會為框架繪制漸變,並且在沒有抗鋸齒的情況下完成繪制。

由於我是新手,所以我很難評估這個問題。 這是 FMX 框架的一個已知且無法解決的問題嗎? 或者這是 Delphi 11 的特殊問題? 是否還有其他繪圖問題,尤其是在 Android 上?

在 Android 下是否可以繪制圓角矩形? 我在這里只能想到位圖。

如果有經驗的 Delphi FMX 開發人員可以就此主題發表意見,我將不勝感激。

使用 Delphi 創建一個新的空白多設備 FMX 應用程序 11. 將一個 TRectangle 拖到窗體上。 將以下代碼粘貼到表單中:

procedure TForm13.FormCreate(Sender: TObject);
begin
  Rectangle.Fill.Kind:=TBrushKind.None;
  Rectangle.XRadius:=10;
  Rectangle.YRadius:=10;
  Rectangle.Stroke.Kind:=TBrushKind.Gradient;
  Rectangle.Stroke.Thickness:=10;
  Rectangle.Stroke.Gradient.Color:=TAlphaColors.Black;
  Rectangle.Stroke.Gradient.Color1:=TAlphaColors.White;
end;

在平台 Windows 和 Android 平板電腦上啟動應用程序。 在兩個系統上截屏。 為什么圖形表示不同?

安卓/Windows 比較

從 Delphi 開始,Android 不支持 11 種漸變筆刷。 這不是 Embarcadero 的官方聲明,但可以通過瀏覽 Android 上負責渲染形狀的源代碼來觀察。 通過查看FMX.StrokeBuilder.pas ,你會發現Brush沒有使用Gradient屬性,它總是使用純色。 已經在 Embarcadero 官方錯誤跟蹤器上進行了報告,但似乎沒有足夠的需求來修復/實施此問題。

至於變形的圓角,這是 FMX 如何在 Android 上渲染曲線的另一個問題。 這也已經被報告並正在等待解決方案。

晚了,但我是這里的新手。 我很久以前遇到過這個問題,使用 RadiantShapes.TRadiantRectangle 而不是 TRectangle。 另一種解決方案是使用 TPath (FMX.Objects one)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM