我想在我的应用程序中显示以下文本。我正在使用Paint
类与FILL_AND_STROKE
风格来实现此目的。但只有一种方法setColor()
可用于设置颜色。如何绘制不同笔画和填充颜色的文字?
如何设置不同的笔触和填充颜色?
我想在我的应用程序中显示以下文本。我正在使用Paint
类与FILL_AND_STROKE
风格来实现此目的。但只有一种方法setColor()
可用于设置颜色。如何绘制不同笔画和填充颜色的文字?
如何设置不同的笔触和填充颜色?
不能完全肯定,但也许你可以这样做:
TextView test = (TextView) findViewById(R.id.test);
test.setShadowLayer(float, float, float, int);
不要使用FILL_AND_STROKE。用FILL绘制一次,然后改变颜色并用STROKE绘制。
(对于矩形的作品我不知道中风在所有工作的文字你也来试试吧,看看。)
我试过了,但是当笔画宽度更大时,结果文本看起来不太好。 – 2012-01-28 11:20:32
不止是什么? – 2012-01-28 15:00:57
为更高的文本大小和笔触宽度生成的文本看起来丑陋。 – 2012-01-28 15:04:32
内部定制的TextView(在EditText上不工作):
@Override
public void onDraw(Canvas canvas)
{
final ColorStateList textColor = getTextColors();
TextPaint paint = this.getPaint();
paint.setStyle(Style.STROKE);
paint.setStrokeJoin(Join.ROUND);
paint.setStrokeMiter(10);
this.setTextColor(strokeColor);
paint.setStrokeWidth(strokeWidth);
super.onDraw(canvas);
paint.setStyle(Style.FILL);
setTextColor(textColor);
super.onDraw(canvas);
}
如果你在自定义的EditText中实现它,这是行不通的,在这种情况下显示最后setTextColor,任何想法为什么? – TilalHusain 2014-01-23 17:15:03
@Architact很可能是因为'EditText'的'onDraw'的实现默认会绘制背景,因此第二次调用会绘制第一个。这只适用于透明背景。在不透明背景的情况下你需要做的是从super复制整个onDraw,并且只绘制文本两次。 – Trilarion 2016-01-05 20:42:03
它会永远循环onDraw – user924 2017-11-18 11:24:35
我使用的第一个解决方案上面想出这个主意:放下更大的中风,文本,然后用小FILL_AND_STROKE文本覆盖它:
mScorePaint = new TextPaint();
mScorePaint.setTextSize(63);
mScorePaint.setStyle(Style.STROKE);
mScorePaint.setStrokeJoin(Join.ROUND);
mScorePaint.setStrokeMiter(10.0f);
mScorePaint.setStrokeWidth(frameWidth/50.0f); // about 12
mScorePaint.setColor(0xffff0000); // black
c.drawText(Integer.toString(mScore), x, y, mScorePaint); // red first
mScorePaint.setStrokeWidth(frameWidth/125.0f); // about 5
mScorePaint.setColor(0xff000000); // red
c.drawText(Integer.toString(mScore), x, y, mScorePaint); // black on top
因为FILL单独WA没有看到任何Stroke属性,而且显得非常单薄。
这是愚蠢的,我只是想使用TextView的布局参数,我怎么知道哪个x,y我应该设置为c .drawText方法,没用 – user924 2017-11-18 11:25:58
阴影层不同,它会在文本后面放一个指定的颜色,然后文本会出现一些模糊的东西。 – 2012-01-28 11:18:59
嗯,我想我知道你的意思,它不会创造干净的边缘吗? 我在想使用设置文本颜色黑色和喜欢的影子红色或什么 – FabianCook 2012-01-28 12:15:27
看到如何处理“你好”的背景颜色的边缘不模糊,这就是我的意思是一个干净的边缘 – FabianCook 2012-01-28 12:18:42