2012-01-28 121 views

回答

0

不能完全肯定,但也許你可以這樣做:

link

TextView test = (TextView) findViewById(R.id.test); 

test.setShadowLayer(float, float, float, int); 
+3

陰影層不同,它會在文本後面放一個指定的顏色,然後文本會出現一些模糊的東西。 – 2012-01-28 11:18:59

+0

嗯,我想我知道你的意思,它不會創造乾淨的邊緣嗎? 我在想使用設置文本顏色黑色和喜歡的影子紅色或什麼 – FabianCook 2012-01-28 12:15:27

+0

看到如何處理「你好」的背景顏色的邊緣不模糊,這就是我的意思是一個乾淨的邊緣 – FabianCook 2012-01-28 12:18:42

15

不要使用FILL_AND_STROKE。用FILL繪製一次,然後改變顏色並用STROKE繪製。

(對於矩形的作品我不知道中風在所有工作的文字你也來試試吧,看看。)

+0

我試過了,但是當筆畫寬度更大時,結果文本看起來不太好。 – 2012-01-28 11:20:32

+0

不止是什麼? – 2012-01-28 15:00:57

+1

爲更高的文本大小和筆觸寬度生成的文本看起來醜陋。 – 2012-01-28 15:04:32

16

內部定製的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); 
} 
+0

如果你在自定義的EditText中實現它,這是行不通的,在這種情況下顯示最後setTextColor,任何想法爲什麼? – TilalHusain 2014-01-23 17:15:03

+0

@Architact很可能是因爲'EditText'的'onDraw'的實現默認會繪製背景,因此第二次調用會繪製第一個。這隻適用於透明背景。在不透明背景的情況下你需要做的是從super複製整個onDraw,並且只繪製文本兩次。 – Trilarion 2016-01-05 20:42:03

+0

它會永遠循環onDraw – user924 2017-11-18 11:24:35

0

我使用的第一個解決方案上面想出這個主意:放下更大的中風,文本,然後用小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屬性,而且顯得非常單薄。

+0

這是愚蠢的,我只是想使用TextView的佈局參數,我怎麼知道哪個x,y我應該設置爲c .drawText方法,沒用 – user924 2017-11-18 11:25:58

相關問題