问题标签 [custom-painting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1169 浏览

image - 如何在颤动中使用 Canvas 裁剪 png 图像并删除其未使用的空间?

此附件来自通过画布在本地保存的渲染画布图像。在图像中,我绘制了要在画布中渲染并在本地保存的方形框,没有左右多余的空格。我只想保存方形框并删除不必要的 PNG 图像空间。那么,如何做到这一点呢?

在此处输入图像描述

小部件源代码:

PngImageCropper-代码

0 投票
1 回答
251 浏览

java - 自定义绘画和Z-order:查询重新绘画顺序

所以,我想对 a 中的一些组件进行 Z 排序JFrame

组件:

框架:

将组件添加到框架/主类中:

repaint()然后,我想使用调用来渲染这些组件。

渲染器:

应该在顶部/下方呈现的内容应该对应于框架中组件的 Z-index。(例如,索引 1 处的组件应在组件顶部呈现索引 0)

但是,当渲染器 ( JPanel) 被添加到窗口 ( JFrame) 上并被paintComponent调用时,什么都不会发生。从字面上看,没有任何油漆。

注释掉主类中的 Z 顺序代码使得至少有一些东西确实在绘制,但是红色绘制在蓝色之上(因为在 PaintComponent 方法中,红色最后绘制,因此在顶部),这不是我想要的是。

为什么组件按照它们在 中调用的paintComponent顺序显示,而不是按照它们在 中设置的顺序显示JFrame

MRE / SSCCE

0 投票
0 回答
449 浏览

flutter - 颤振中CustomPaint的高度

我正在构建一个 CustomPaint 小部件,以使用 ParagraphBuilder 以自定义方式显示文本,并将其命名为 myHtmlWidget。

我的问题是如何在绘制之前确定小部件的高度?我试图在 MyHtmlPainter 的构造函数中调用 ParagraphBuilder 并测量高度,但那里没有宽度

这是我的构建树的一部分:

这是 MyHtmlPainter:

0 投票
0 回答
97 浏览

flutter - Flutter 中所有渲染词框的列表

如何获得包含我呈现的所有单词的框列表,我需要它来确定用户长按哪个单词?换句话说,我怎样才能找到maxRange以便我可以在下面的代码中使用getBoxesForRange

我的代码:

0 投票
0 回答
98 浏览

java - 点击离开后 JOptionPane.showMessageDialog 不会消失

此代码可视化 A* 算法。当它到达算法的末尾时,它会弹出一个警报,说明使用找到的路径

单击离开后,窗口消失,但随后在左上角再次呈现,没有关闭它的选项。此外,目标的路径是在单击离开后呈现的,但是在代码中它会在警报出现之前呈现。我确信问题出在这个方法上,特别是在我绘制或调用重绘方法的方式上,而不是实际算法本身。有人可以解释一下我哪里出了问题吗?

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

0 投票
2 回答
1619 浏览

android - 如何为颤振绘图应用程序实现橡皮擦功能

有一个关于通过颤振(YouTube)创建绘图应用程序的视频,它支持在用户点击屏幕时绘制线/点,但我找不到像 Android 原生(如这里)那样擦除用户绘制的内容的功能/方法,尤其是为线。我不能只在它们上面覆盖一些像白色这样的颜色,因为我在手势检测器下有背景图像。

有人可以给我一些建议吗?

我的示例项目:

谢谢。

0 投票
0 回答
452 浏览

user-interface - 如何在 Flutter 中实现自定义渐变形状/图案

开箱即用,我们得到LinearGradient,RadialGradientSweepGradient。我想做的是类似于下面显示的图像。假设我们用 绘制一个自定义形状CustomPainter。当在其上应用此 customShapeGradient 时,渐变应从自定义形状的边框开始并朝向中心。我意识到这可能会引入奇怪的效果,因为我们的形状大多不是对称的,并且“边框到中心”方法不像“中心到边框”方法(如 3 个开箱即用方法)那么容易。在这里,开发人员有责任确保渐变填充不与自身重叠,这意味着它不会一直到中心。

这是我为椭圆形找到的图像,它最接近地描述了我想要的东西。假设我们的形状是黄色的线。我想实现填充内部的渐变。 椭圆自定义渐变

这也是类似的图像: 省略海军背景,形状有蓝绿色边框

我提供的两个示例是针对椭圆的,但是我的问题是针对由CustomPainter.

我几乎可以肯定这是可能的,因为阴影(本质上是渐变)基本上与此相反。我们可以对CustomPainter形状应用阴影。唯一的区别是阴影会向形状内部增长(可能像内部阴影)。

0 投票
0 回答
420 浏览

flutter - 颤振:onTap 未在自定义绘画小部件顶部的手势检测器上触发

这是我的小部件

当用户点击图标时,我正在尝试切换到绘图区域。但是一旦在用户点击图标时创建了自定义绘画区域,之后它就不会检测到任何点击。

getWidget 方法根据点击的图标返回一个小部件。这是小部件之一。当这个小部件返回时,点击功能不再起作用。

0 投票
1 回答
717 浏览

flutter - 颤动中的画布drawLine偏移属性

好的,直截了当地为了画一条线,我们必须定义偏移点,作为一个假人,我无法理解它们是如何工作的。我知道偏移量会取代绘制的线,但我想怎么知道我应该通过什么值。例如下面的代码:

我不明白这些点在设备屏幕上的位置,所以我的问题是如何计算这些点?

0 投票
1 回答
880 浏览

user-interface - Flutter how to paint custom gradients

I recently experienced a problem when I was trying to create following AppBar with gradient.

Expected color gradient

When I tried to replicate this design in flutter with the colors rose = Color(0xFFec15ee), purple = Color(0xFF8561f5) and blue = Color(0xFF1eaefc) and set the alignment property accordingly it somehow gave me not the expected result

d

Just imagine the opacity wouldnt be there. As you can see I only want the rose to be aligned at the bottomLeft and not to expand up to topLeft as shown in the example.

My question how can I do that. There must a way to do that within CustomPainter yet I haven't found the right way.