我有一个小部件:HtmlWidget('
因为它又大又长,当显示在手机上时,它会包装成:
Some Long
Sentence Alright
有两种方法可以缩小规模:
1.Transform.scale
Transform.scale(
child: myWidget,
scale: 0.5,
)
这种方法的问题:
文本仍然被包装(可能是因为它被布局,然后被缩小)
2.手机盒
Container(
child: FittedBox(child: myWidget),
width: 300,
height: 100,
)
这种方法只有一个问题:我不知道预期的
宽度/高度。
基本上,我想要一个小部件,它可以根据比例缩小
myWidget
(比如Transform.scale
),但不包装内容(比如FittedBox
)。
我该怎么做?
我建议一种新的方法。您可以尝试这种方法,并使用正则表达式更改html中文本的大小
main() async {
String html =
'''
<font size="60">Some Long Sentence Alright</font>
''';
html = html.replaceAllMapped(RegExp(r'font size=\"?(\d{1,2})\"'), (match) {
print(match);
print(match.group(0));
print(match.group(1));
var value = int.parse(match.group(1) ?? "");
var newValue = value ~/ 2;
print(newValue);
print(match.group(0)!.replaceAll(value.toString(), newValue.toString()));
var replace = match.group(0)!.replaceAll(value.toString(), newValue.toString());
return replace;
});
print(html);
}
输出
I/flutter (21629): Instance of '_RegExpMatch'
I/flutter (21629): font size="60"
I/flutter (21629): 60
I/flutter (21629): 30
I/flutter (21629): font size="30"
I/flutter (21629): <font size="30">Some Long Sentence Alright</font>
FittedBox具有默认配合:BoxFit。包含把它改成你需要的。
FittedBox(
fit: BoxFit.scaleDown,
child: Text(
text.pasDeven,
),
)
Transform
小部件将其自身的约束向下传递到Text
小部件,如果视口不够宽,不适合200px字体大小,则在向下缩放绘画之前将其包装。请参阅RenderTransform
源代码:它扩展了RenderProxyBox
,使用默认的performLayout
,并且仅重写油漆
。
知道了这一点,您可以实现自己的RenderObject
来转换约束(在布局期间)和画布(在绘制期间)。我在这里提出了一个简单的实现。如下所示:它使用x2、x4和x8字体大小,没有“幻影边距”。
最重要的是:
@override
void performLayout() {
// ...
// adjust the constraints width before performing child layout
final childConstraints =
constraints.copyWith(maxWidth: constraints.maxWidth / scale);
// ...
}
@override
void paint(PaintingContext context, Offset offset) {
// scale down during painting to compensate
layer = context.pushTransform(/* ... */);
}
我希望能够覆盖 doubleTap 运动事件,使其不执行任何操作,而不是缩放和取消缩放。我在另一篇文章中读到,有人能够通过创建自定义WebView类并覆盖其中的内容来使其工作,但是无论如何,我似乎都无法在DoubleTap上启动,并且无论如何双击缩放仍在发生。 到目前为止,我的进展是我可以正确触发onDown事件(我在调试输出窗口中看到了msg)。 这是我的代码,在我帖子的最底部有一个链接,指向我
缩放画布时,有什么方法可以阻止这种模糊吗?我想这和GPU插值有关。但我这里需要的是一个像素完美的“像素化”变焦。只需使用最近的“真实”相邻像素的颜色。 我在这里看到了解决方案,但在这两个解决方案中,有一个建议工作(#1/#4),#4肯定是CPU扩展,而#1我猜也是。 这种缩放需要快速——我希望能够支持多达20-25层(可能是StackPane中的画布,但我对其他想法持开放态度,只要它们不融化中央处
悬停变焦chrome Ext。悬停时加载原始大小的图片。 对于我的图像,我调整了css内部的大小,因为它节省了我的photoshop裁剪步骤。 但对于使用悬停缩放的用户,将向中添加一个新类,并且将加载原始大小。 有什么办法可以阻止悬停变焦工作吗?同时保持css的大小调整。提前道谢。
除了平移和旋转,HTML5的画布API还提供了缩放画布上下文的手段。本节,我们将使用scale()方法来按比例缩小画布上下文的高度。 图4-5 缩放画布上下文 绘制步骤 按照以下步骤,绘制一个按比例缩小的矩形: 1. 定义画布上下文,及矩形的尺寸: window.onload = function(){ var canvas = document.getElementById("myCan
本文向大家介绍在Vue项目中,防止页面被缩放和放大示例,包括了在Vue项目中,防止页面被缩放和放大示例的使用技巧和注意事项,需要的朋友参考一下 现在vue的脚手架生成项目之后我们会发现index.html页面中。 在head标签中,我们会看到meta标签中有一条显示是 但是我们发现这条语句中只是让user-scalable=0,这是不让用户进行缩放。 可以页面会在两个手指进行放大!!! 可以页面会
问题内容: 如果使用“ fill_parent”或“ weight”拉伸视图或按钮,如何防止在ImageView或ImageButton中自动缩放位图? 例如,这将在屏幕顶部创建一个等距分布的4按钮工具栏时很有用,但是即使我使用scaleType =“ center”,按钮内部的图像也会不断拉伸,这应该避免根据文档缩放,但事实并非如此。 任何见解表示赞赏! 谢谢, 问题答案: 我发现使用andro