我知道如何使用自定义视图(EditText或TextView)来描边文字但我无法实现像这样的美丽的东西,这是使用Photoshop完成的.是的,它也有外影.
到目前为止我所做的是调整笔画宽度和笔画连接样式.但是,如果我增加笔划宽度,则笔划会发生整个文本.
据我所搜索,有一个名为MagicTextView的库,但它也无法给出如上所述的结果.
更新:我根据@pskink的建议调整了一些内容.它现在有效.但是我不能再拖了.如果我拖动EditText,会出现一些像这样的奇怪线条.
这是代码:
- @Override public void onDraw(Canvas canvas) {
- final int x = this.getLeft();
- final int y = this.getBottom();
- mText = this.getText().toString();
- p.setStrokeWidth(30);
- p.setStyle(Style.STROKE);
- p.setStrokeJoin(Join.ROUND);
- p.setColor(0xffffffff);
- canvas.drawText(mText,x,y,p);
- p.setStyle(Style.FILL);
- p.setColor(0xff000000);
- canvas.drawText(mText,p);
- }
解决方法
However,if I increase the stroke width,the stroke took place the whole text.
如果问题是笔划居中,并且您希望笔划在文本之外,请参阅:Android Paint stroke width positioning
You must precalculate the desired width and height according to your stroke.
我建议尝试一种非常大胆的字体.在下图中,白色笔划将以红线为中心(这将是每个黑色字母的轮廓).
为了回应您的更新:
If I drag that EditText,there is some weird lines showed up.
该行可能是关注EditText的结果.您可以明确删除焦点:Android: Force EditText to remove focus?
或者,您可以设置焦点样式(如果它不会对UI的其余部分产生负面影响,则可能是不可见的):How to change the color of a focused EditText when using “android:Theme.Holo.Light”?