我想在我的應用程序中顯示以下文本。我正在使用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