我正在尝试在 SwiftUI 中进行文本笔画或在我的文本上添加边框,而不是在Text()项目中的字母中。
是否可以?
我想用边框制作这种效果:

当使用scale()具有两个不同参数的Graphics2D 函数(在x和y方向上按不同比例缩放)时,稍后在此Graphics2D对象上绘制的所有内容也会缩放.这具有奇怪的效果,即在一个方向上绘制的线比在另一个方向上绘制的线更粗.以下程序产生此效果,它显示以下窗口:

public class StrokeExample extends JPanel {
public void paintComponent(Graphics context) {
super.paintComponent(context);
Graphics2D g = (Graphics2D)context.create();
g.setStroke(new BasicStroke(0.2f));
int height = getHeight();
int width = getWidth();
g.scale(width/7.0, height/4.0);
g.setColor(Color.BLACK);
g.draw(new Rectangle( 2, 1, 4, 2));
}
public static void main(String[] params) {
EventQueue.invokeLater(new Runnable(){public void run() {
StrokeExample example = new StrokeExample();
JFrame f = new JFrame("StrokeExample");
f.setSize(100, 300);
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(example);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setVisible(true);
}});
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此坐标转换以避免必须手动将我的应用程序模型坐标(在此示例中为(2,1,2,4))转换为屏幕(或组件)像素坐标,但我不希望此笔画失真.换句话说,我希望所有线都具有相同的宽度,与当前的x和y尺度因子无关.
我知道是什么产生了这种效果(Stroke对象创建了一个在用户坐标中绘制的矩形的描边形状,然后被转换为屏幕坐标),但我不确定如何解决这个问题.
我正在尝试在UIImage 的非透明像素周围添加笔触/边框和阴影.
目标是获得如下所示的内容:

我已经尝试了几件事,我仍在努力弄清楚如何实现这一目标.
一般来说,我试过:
向UIImageView添加阴影.(影子的作品,中风/边框是一个矩形,而不是在脸上描绘出非透明像素.此外,我希望将结果保存为一个UIImage(没有它只是显示上的UIImageView))
为UIImage添加阴影(慢,不知道如何在这里添加边框).
非常感谢帮助!谢谢!
我想在画布上使用具有一定宽度(以像素为单位,或理想情况下为"dp")的线条显示X/Y数据.我已经尝试了Paint的setStrokeWidth(..)方法,这确实改变了线宽,但它不是我需要的.在我的例子中,我使用matrix.preScale(xScale,yScale)将我的画布缩放为"真实工程单位",因此X比例表示0到100,Y为0比1.Paint对象的setStrokeWidth()方法似乎设置笔划,使其遵循我的矩阵preScale()设置.换句话说,水平线绘制得非常薄,垂直线绘制得非常厚.
有没有办法配置Paint,这样无论绘制线的方向,其宽度都是一致的像素数?
我已经尝试定义一个Drawable,它是一个行,并从那里创建一个ShapeDrawable,然后将它应用到Paint但在运行时遇到一些讨厌的类转换错误.这让我觉得这是错误的做法.但也许我太早放弃了.
据我所知,有一些Android绘图/图表包可用,有些包含源代码,但我真的希望在这里了解平台,而不是使用第三方解决方案.
谢谢你的任何提示!丰富
我正在努力寻找一种方法来简单地为我的UILabel文本添加轮廓/笔触/轮廓.谈论围绕UILabel背景的文字字母的笔划.
我正在使用swift 3,我想直接将我的文本概述到我的子类中:UILabel.
我找到了多个答案,建议这样做:
let strokeTextAttributes = [
NSStrokeColorAttributeName : UIColor.black,
NSForegroundColorAttributeName : UIColor.white,
NSStrokeWidthAttributeName : -4.0,
NSFontAttributeName : UIFont.boldSystemFont(ofSize: 30)
]
self.attributedText = NSMutableAttributedString(string: self.text!, attributes: strokeTextAttributes)
Run Code Online (Sandbox Code Playgroud)
但问题是它不起作用.我的文字仍然相同,没有大纲......
谁能在这帮助我?那将是一件好事:)
非常感谢.干杯伙计们.
我有NSBezierPath一个圆角矩形,但它的角落看起来波涛汹涌,并且在全尺寸观看时显得比其余的笔划更亮.我的代码是:
NSBezierPath *path = [NSBezierPath bezierPath];
[path appendBezierPathWithRoundedRect:NSMakeRect(0, 0, [self bounds].size.width, [self bounds].size.height) xRadius:5 yRadius:5];
NSGradient *fill = [[NSGradient alloc] initWithColorsAndLocations:[NSColor colorWithCalibratedRed:0.247 green:0.251 blue:0.267 alpha:0.6],0.0,[NSColor colorWithCalibratedRed:0.227 green:0.227 blue:0.239 alpha:0.6],0.5,[NSColor colorWithCalibratedRed:0.180 green:0.188 blue:0.196 alpha:0.6],0.5,[NSColor colorWithCalibratedRed:0.137 green:0.137 blue:0.157 alpha:0.6],1.0, nil];
[fill drawInBezierPath:path angle:-90.0];
[[NSColor lightGrayColor] set];
[path stroke];
Run Code Online (Sandbox Code Playgroud)
下面是2个角落的图片(在小图片中不那么明显):

任何人都知道是什么导致了这个?我只是错过了一些东西吗?
谢谢你的帮助
我正在研究HTML5中的涂鸦应用程序,我想做一些桶功能.我们的想法是绘制一条路径,它将被关闭并填充所选颜色(笔划的颜色).它适用于纯色,但如果我想要一个透明的笔触和填充,我会遇到这个问题:http://imgur.com/0N3MW
发生的是填充完成直到笔划的中间(路径的实际采样点),因此在形状内部的行程大小的一半线是较暗的,因为它是填充和笔划的交点.
你看到了解决方法吗?
不幸的是,我现在无法发布到JSFiddle,因为它处于READ ONLY模式.但你应该能够看到我在谈论这个沙箱中的内容:http://bit.ly/AbaMLl (网站和图书馆与我正在使用的内容无关,它只是我发现的一个帆布沙箱)
欢迎任何想法/主角:)
今天我很期待如何在OSMDroid中使用PathOverlay.
我找不到任何解释它是如何工作的.
我需要创建一个建议的路线(不像导航系统),只需要一个点开始,做一个"电路",然后返回起点.
就像这样(在谷歌地图中绘制):

我在这里要问的是,正确的方法是什么,指定一个自定义路径,做我想要的转弯.
谢谢!
我有一个RadioGroup
我想添加一个带有一些填充的虚线笔划(boder?).
Radio Buton的背景是
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/navigation"/>
<item >
<shape>
<solid android:color="#00000000"/>
<stroke android:color="#ffffff"
android:dashGap="5dp"
android:dashWidth="5dp"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
第二项 - 我试图绘制虚线.
我究竟做错了什么?
考虑 2 个 html svg 路径,一个正方形(类inside)和一个outside具有相同高度的矩形(类)。当我应用时stroke-width: 10px,笔触会5px在内部和5px外部应用。小提琴
我如何只在里面或只在外面抚摸?
.inside {
stroke: #333;
stroke-mode: inside; // property does not exist
stroke-width: 5px;
}
.outside {
stroke: #333;
stroke-mode: outside; // property does not exist
stroke-width: 5px;
}
Run Code Online (Sandbox Code Playgroud)
如果没有这样的属性,是否有解决方法来实现以下目标: