首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android平台上绘制形状的问题

在Android平台上绘制形状的问题
EN

Stack Overflow用户
提问于 2022-01-08 09:51:30
回答 2查看 185关注 0票数 0

我是使用Delphi 11和FMX框架开发Android应用程序的新手。

我想使用带有框架的矩形作为面板的样式,并想知道带有圆角和其他形状的矩形是如何在Android平台上绘制的(见图)。在Windows上,一切都如预期的那样工作。对于填充,到目前为止,我还没有在Android上找到任何绘图错误。

对于矩形,角是变形的,框架有时是不关闭的。

一般情况下,对于所有形状(TCircleTArc),框架不绘制渐变,而绘图不需要反混叠。

由于我是新来的,我很难评估这个问题。这是FMX框架中已知且不可解决的问题吗?或者这是Delphi 11的一个特殊问题?还有其他的绘图问题,特别是在Android上吗?

在Android环境下,有没有其他方法可以画出圆角矩形呢?我只能想到这里的位图。

如果有经验的Delphi开发人员能就这个问题发表一些意见,我将非常感激。

使用Delphi11创建一个新的空白多设备FMX应用程序。将一个TRectangle拖到表单上。将以下代码粘贴到表单中:

代码语言:javascript
运行
复制
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平板电脑上启动该应用程序。在这两种系统上都做个截图。为什么图形表示是不同的?

EN

回答 2

Stack Overflow用户

发布于 2022-01-13 20:09:36

从Delphi 11开始,Android不支持笔画中的渐变笔刷。这不是Embarcadero的官方声明,但可以通过浏览负责在Android上呈现形状的源代码来观察。通过查看FMX.StrokeBuilder.pas,您将发现没有使用BrushGradient属性,并且它总是使用纯色。这是Embarcadero官方bug跟踪器上的已报告,但是似乎没有足够的需求来进行这个固定/实现。

至于变形的圆角,这是FMX如何在Android上绘制曲线的另一个问题。这也是已报告,正在等待解决方案。

票数 0
EN

Stack Overflow用户

发布于 2022-04-11 07:54:14

迟到了,但我是这里的新手。我很久以前就在这个问题上运行,并且使用RadiantShapes.TRadiantRectangle而不是TRectangle。另一个解决方案是使用TPath (FMX.Objects one)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70631219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档