Dan*_*Lew 33 android google-maps android-mapview
我正在尝试在Android上的MapView上绘制一些文本.文本的绘制很顺利,但是阅读文本非常困难,因为它是白色的,没有黑色边框(就像MapViews上自然出现的其他文字一样,表示城市,州和国家).我似乎无法想象如何用黑色边框绘制文本.有人知道怎么做吗?
这是我现在正在使用的那种代码(这只是我在其中一个叠加层中找到的示例代码):
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText("Some Text", 100, 100, textPaint);
super.draw(canvas, mapView, shadow);
}
Run Code Online (Sandbox Code Playgroud)
Jer*_*gan 64
最简单的方法是使用Stroke ...这样的事情:
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
Paint strokePaint = new Paint();
strokePaint.setARGB(255, 0, 0, 0);
strokePaint.setTextAlign(Paint.Align.CENTER);
strokePaint.setTextSize(16);
strokePaint.setTypeface(Typeface.DEFAULT_BOLD);
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(2);
Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);
super.draw(canvas, mapView, shadow);
}
Run Code Online (Sandbox Code Playgroud)
这将在文本外部绘制2个像素的边框,然后在其顶部绘制文本,为您提供轮廓的错觉.
此外,可能值得在构造函数中设置Paints然后重新使用它们.
小智 18
而不是这个代码(来自第一个答案)
canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);
Run Code Online (Sandbox Code Playgroud)
尝试使用与Path相同的内容:
Path path = new Path();
String text = "Some Text";
textPaint.getTextPath(text, 0, text.length(), 0, 100, path);
canvas.drawPath(path, strokePaint);
canvas.drawPath(path, textPaint);
Run Code Online (Sandbox Code Playgroud)
看起来更好?
Dan*_*Lew 11
半答案,可能会或可能不够好(这在我的情况下),是设置一个阴影:
textPaint.setShadowLayer(3, 0, 0, Color.BLACK);
Run Code Online (Sandbox Code Playgroud)
阴影有助于文本突出很多,但不如黑色边框那么好.我仍然很好奇如何解决原始问题.
| 归档时间: |
|
| 查看次数: |
46170 次 |
| 最近记录: |