jjzjj

drawtext

全部标签

android - 为什么我对 Canvas.drawText() 的调用不起作用

大家好:我正在编写一个继承自TextView的类,并覆盖其onDraw()方法,但在该方法中,我对canvas.drawText()的调用似乎没有工作,代码就像下面这样:protectedvoidonDraw(Canvascanvas){//super.onDraw(canvas);Paintpaint=newPaint();paint.setColor(android.graphics.Color.WHITE);paint.setTextSize(20);Stringtext="hello";canvas.drawText(text,0,0,paint);}

c++ - DrawText VS TextOut Win32

我发现以前使用过这两个功能,但我不太明白它们之间的区别。嗯,我知道DrawText需要一个格式化矩形,并且可以做一些文本格式化,而textout只是起始坐标,还有其他的区别吗? 最佳答案 DrawText它将文本字符串绘制到以逻辑坐标指定的矩形区域中。它提供了格式化多行文本的便捷方式。主要用于断字段落格式、扩展标签等。TextOut这是一个简单易用的文字绘图功能。它使用当前选定的文本属性在指定位置绘制一个字符串。正文要绘制的字符串不需要以零结尾。另外,看看ExtTextOut和DrawTextEx

c++ - DrawText VS TextOut Win32

我发现以前使用过这两个功能,但我不太明白它们之间的区别。嗯,我知道DrawText需要一个格式化矩形,并且可以做一些文本格式化,而textout只是起始坐标,还有其他的区别吗? 最佳答案 DrawText它将文本字符串绘制到以逻辑坐标指定的矩形区域中。它提供了格式化多行文本的便捷方式。主要用于断字段落格式、扩展标签等。TextOut这是一个简单易用的文字绘图功能。它使用当前选定的文本属性在指定位置绘制一个字符串。正文要绘制的字符串不需要以零结尾。另外,看看ExtTextOut和DrawTextEx

java - 如何垂直对齐文本?

目标:纯Canvas上的Android>=1.6。假设我想写一个函数来绘制一个(宽度,高度)大红色矩形,然后在里面绘制一个黑色的HelloWorld文本。我希望文本在视觉上位于矩形的中心。那么让我们试试吧:voiddrawHelloRectangle(Canvasc,inttopLeftX,inttopLeftY,intwidth,intheight){PaintmPaint=newPaint();//heightof'HelloWorld';height*0.7looksgoodintfontHeight=(int)(height*0.7);mPaint.setColor(COLOR

java - 如何垂直对齐文本?

目标:纯Canvas上的Android>=1.6。假设我想写一个函数来绘制一个(宽度,高度)大红色矩形,然后在里面绘制一个黑色的HelloWorld文本。我希望文本在视觉上位于矩形的中心。那么让我们试试吧:voiddrawHelloRectangle(Canvasc,inttopLeftX,inttopLeftY,intwidth,intheight){PaintmPaint=newPaint();//heightof'HelloWorld';height*0.7looksgoodintfontHeight=(int)(height*0.7);mPaint.setColor(COLOR

java - android canvas drawText从宽度设置字体大小?

我想使用.drawtext在一定宽度的canvas上绘制文本例如,无论输入文本是什么,文本的宽度都应始终为400px。如果输入文本较长,则会减小字体大小,如果输入文本较短,则会相应增加字体大小。 最佳答案 这里有一个更有效的方法:/***SetsthetextsizeforaPaintobjectsoagivenstringoftextwillbea*givenwidth.**@parampaint*thePainttosetthetextsizefor*@paramdesiredWidth*thedesiredwidth*@par

java - android canvas drawText从宽度设置字体大小?

我想使用.drawtext在一定宽度的canvas上绘制文本例如,无论输入文本是什么,文本的宽度都应始终为400px。如果输入文本较长,则会减小字体大小,如果输入文本较短,则会相应增加字体大小。 最佳答案 这里有一个更有效的方法:/***SetsthetextsizeforaPaintobjectsoagivenstringoftextwillbea*givenwidth.**@parampaint*thePainttosetthetextsizefor*@paramdesiredWidth*thedesiredwidth*@par

android - 使用 Canvas.drawText() 定位文本

我是Android开发的新手,现在正在尝试制作一个简单的应用程序。用户可以选择图像并向其添加文本。用户可以选择不同的字体和文本大小。对于预览,我在RelativeLayout中使用ImageView,创建的文本将从代码添加到布局(使用TextView)。当用户按下保存按钮时,图像将与文本一起保存。Canvas.drawText中的所有问题。我找不到一个好的公式来计算正确的X和Y。绘制文本后总是在错误的位置。Y位置总是因字体而异,X也有一个小缩进。这是屏幕截图(首先是TextView,下面是图片文字):Screenshot这是我查找位置的代码:publicfloat[]getPositi

Lollipop 上的Android drawText缺少字符

我有一个显示比例的Android应用程序,它在5.0(Lollipop)之前的所有版本上都运行良好,其中使用drawText方法绘制的所有文本都以某种方式被截断。仅显示两个字母文本的第二个字母。即第一个标记只是'0'字母但不显示。对于第二个2个标记(40和80),仅显示0,对于其余的140...250,不显示任何文本。文字大小似乎还可以,但并未显示所有字符。图像按[0..1,0..1]平方缩放。我在drawText上找到并尝试了很多帖子,但没有一个有帮助。(View.setLayerType()所有组合,setLinearText(true),Paint.Style.FILL...)p

android - DrawText 仅在 Jelly Bean 4.2 上绘制字符串的一个字符

好吧,这让我抓狂。我正在使用Canvas在我的应用程序中绘制仪表。它还在散列标记上绘制数字,并在仪表上绘制一些水平文本。这一切在Android4.2以下的所有版本中都可以正常工作。在4.2中,它只从它应该写的文本中绘制一个字符(看起来是中间字符)。例如,如果我的文字是12345,它只写3。如果它是两位数,它只绘制第一个数字。我在4.2模拟器和带有4.2.1的Nexus4上看到了这种行为。我阅读了所有有关默认情况下打开的硬件加速的信息,它会导致某些Paint和Canvas功能出现问题。我已经插入代码来关闭drawText调用的硬件加速,但它没有帮助。这是我的绘画代码:titlePaint