我正在繪制文本在我的使用和.但是,我希望我的文本以大寫(xiě)字母繪制。在線建議是使用,但該更改不會(huì)反映在畫(huà)布上。CanvasTextPaintStaticLayouttoUpperCase()這是我的代碼:public void createBitmapAndSave(ImageView img) { BitmapDrawable bitmapDrawable = ((BitmapDrawable) img.getDrawable()); Bitmap bitmap = bitmapDrawable.getBitmap(); Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); String topText = topTextView.getText().toString(); String bottomText = bottomTextView.getText().toString(); Canvas canvas = new Canvas(mutableBitmap); TextPaint topPaint = new TextPaint(); TextPaint bottomPaint = new TextPaint(); Typeface typeface = getResources().getFont(R.font.impact); topPaint.setColor(Color.WHITE); topPaint.setStyle(Paint.Style.FILL); topPaint.setTextSize(topTextView.getTextSize()); topPaint.setTypeface(typeface); bottomPaint.setColor(Color.WHITE); bottomPaint.setStyle(Paint.Style.FILL); bottomPaint.setTextSize(bottomTextView.getTextSize()); bottomPaint.setTypeface(typeface); float topTextMeasurement = topPaint.measureText(topText); float bottomTextMeasurement = bottomPaint.measureText(bottomText); StaticLayout topLayout = new StaticLayout(topText, topPaint, canvas.getWidth(), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); StaticLayout bottomLayout = new StaticLayout(bottomText, bottomPaint, canvas.getWidth(), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); topText.toUpperCase(); bottomText.toUpperCase(); canvas.translate(0,0); topLayout.draw(canvas); canvas.translate(0, canvas.getHeight() - 210); bottomLayout.draw(canvas); counter++;
1 回答

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
toUpperCase()
不修改原始字符串,而是創(chuàng)建并返回新字符串。你忽略了 的結(jié)果,這就是為什么它不適合你。toUpperCase()
替換為 。相同topText.toUpperCase();
topText = topText.toUpperCase();
bottomText
添加回答
舉報(bào)
0/150
提交
取消