草庐IT

canvas_comment

全部标签

android - Canvas.drawText(...) 不打印换行符

我试图在我创建的表面View上写一些文本。如果title为false,并且文本中没有添加换行符,它工作正常。但是,如果我添加标题并因此添加换行符,换行符不会按预期打印,而是打印此符号[]。有什么提示吗?@OverridepublicvoiddrawObject(){Stringtext="";if(title){text=getGameBoard().getGame().getForeignProfile().getName()+"\n";}text=text+getScoreAsString();getGameBoard().getCanvas().drawText(text,0,t

android - Canvas 绘制html文本

是否可以将Html传递给Canvas.drawtext()。我试过这个:canvas.drawText(Html.fromHtml("ThisisanunderlinetextdemoforTextView."),0,20,colIndex,rowIndex,getTextPaint());但是那不能解析标签并且不能正确显示。提前致谢。 最佳答案 可以将html字符串解析成SpannedpublicstaticSpannedfromHtml(Stringhtml,intflags){if(android.os.Build.VERSI

android - 了解 Canvas 和 Surface 概念

我很难理解绘制到SurfaceView的过程,因此整个Surface/Canvas/Bitmap系统,在Android中使用。我已经阅读了所有文章和API文档页面,我可以在android-developers网站上找到这些内容,一些android图形教程,LunarLander源代码和thisquestion.请告诉我,这些陈述中哪些是正确的,哪些不是,以及为什么。Canvas附有自己的Bitmap。Surface附有自己的Canvas。窗口的所有View共享相同的Surface,因此共享相同的Canvas。SurfaceView是View的子类,与其他View的子类和View本身不同

android - 有没有办法在不使用 Path 的情况下用 Canvas 绘制填充区域?

我想知道是否有一种方法可以在不使用Path类并调用canvas的情况下使用AndroidCanvas绘制填充区域(如填充多边形).drawPath(...).我想在没有Path的情况下执行此操作的原因是因为我必须绘制非常大的数据集并且canvas.drawPath(...)不是硬件加速的,因此慢。由于硬件加速,使用canvas.drawLines(...)时的性能要好得多,但是我还没有找到一种方法来绘制使用这种方法填充的多边形(即使线条都已连接)。在使用drawLines(...)时,即使调用paint.setStyle(Style.FILL)也不会填充多边形。有没有一种方法可以不使用

android - 圆形 Android Canvas 上的内部阴影

我需要在我在View的onDraw()方法中绘制的Circle上制作内部阴影和渐变,请参阅this(抱歉,因为我是StackOverflow的新手,我还不能发布图片)我想出了如何让渐变工作,但我无法完成内部阴影到目前为止我发现的是this发布,但它似乎有点复杂并且不完全是我需要的我试过使用setShadowLayer(),但我可能无法正常工作,因为除了内部阴影,我还会得到外部阴影,而这不是我需要的如有任何帮助,我们将不胜感激。谢谢! 最佳答案 您应该能够通过将剪辑设置为圆来避免外部阴影,因为这会将绘图限制在圆内。

java - Canvas 如何确定其裁剪范围?

我一直在用Android的Canvas做一些工作,特别是试图确定它的getClipBounds结果是如何确定的。我了解Canvas内部保留了一个转换Matrix,它在我调用translate、scale等时更新,但尝试复制Matrix的结果让我感到困惑。@OverridepublicvoidonDraw(Canvascanvas){RectclipBounds;RectFviewport;canvas.save();canvas.concat(translationMatrix);//viewportMatrix.preConcat(canvas.getMatrix());viewpo

android - 在 Canvas 上绘制 2 个圆圈

我正在尝试像这样绘制两个圆圈:这就是我尝试这样做的方式:Bitmapbmp=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_4444);Canvasc=newCanvas(bmp);RectFrect=newRectF(0,0,width,width);Paintpaint=newPaint();drawCircles(paint,c,width,height,width);ImageViewimg=(ImageView)findViewById(R.id.imageView1);img.setImageBitmap(bmp);i

android - Canvas Eraser 正在绘制一条黑线

我用谷歌搜索了这个问题并提出了各种解决方案。但是,没有一个对我有用。我在应用程序中有一个绘图Canvas。在使用自定义View(drawView)的Activity中将canvas的背景设置为png图片;Bundleextras=intent.getExtras();if(extras!=null){if(extras.containsKey("background")){//setthebackgroundtotheresourceintheextrasintimageResource=intent.getIntExtra("background",-1);Drawableimage

android - Android Canvas 中的平滑非常慢的文本动画,SUBPIXEL_TEXT_FLAG 不起作用

我无法在Canvas中实现平滑非常慢的文本动画,因为Canvas.drawText不想在“像素之间”绘制。例如,给定4个连续帧,我在其中绘制Y偏移量为0、0.5、1、1.5的文本,Canvas实际上将分别以偏移量0、0、1、1绘制它,这导致动画为“生涩的”。有一个名为Paint.SUBPIXEL_TEXT_FLAG的标志,它应该保持浮点精度。我发现了一个相关的线程,其中RomainGuy说这个标志目前在Android中不受支持:MeaningofsomePaintconstantsinAndroid.我的问题是:是否有任何现有的解决方法?注意:在另一个位图中绘制文本一次,然后使用浮点偏

android - 如何在 Android Canvas 中使用 "inverted"绘图进行绘制?

我在Canvas上画了一些东西,我想画一个反色的圆圈:canvas.drawCircle(zx,zy,8f,myPaint);如何配置myPaint使圆形像素的颜色与底层像素的颜色相反?谢谢 最佳答案 试试这个floatmx[]={-1.0f,0.0f,0.0f,1.0f,0.0f,0.0f,-1.0f,0.0f,1.0f,0.0f,0.0f,0.0f,-1.0f,1.0f,0.0f,1.0f,1.0f,1.0f,1.0f,0.0f};ColorMatrixcm=newColorMatrix(mx);p.setColorFilter