不需要的变形效果在路径android上绘制文本

栏目: Android · 发布时间: 8年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/16656453/unwanted-warp-effect-drawing-text-on-path-android

我在路径上绘制文本做一些测试.我通过将位图设置为画布来制作了背景图片.然后,我在画布上绘制文字,按矩阵旋转.我必须缩短代码,我只会发布重要的部分,因为它太长了.下面显示的图像是用gimp剪裁的,所以不要因为不同的大小而烦恼.我的矩形,路径和矩阵对象:

RectF drawTextOval;
    Path drawTextPath;
    Matrix mDrawnMatrix;

现在,我正在做的是在圆形路径上绘制文字:

drawTextOval.set(drawTextPosX - drawTextArc, drawTextPosY
                    - drawTextArc, drawTextPosX + drawTextArc, drawTextPosY
                    + drawTextArc);
            drawTextPath.addArc(drawTextOval, 0, 360);

            drawTextPath.computeBounds(drawTextOval, true);
            mDrawnMatrix.postRotate(drawTextArcStart,
                    (drawTextOval.right + drawTextOval.left) / 2,
                    (drawTextOval.bottom + drawTextOval.top) / 2);
            drawTextPath.transform(mDrawnMatrix);

            patternCanvas.drawTextOnPath(drawText, drawTextPath, 0, 0,
                    mFixedTextPaint);

直到这一点,一切看起来都很好:

但在保存整个屏幕后,旋转的文本在保存的.png图像上看起来扭曲.所有其他组件看起来不错.我做了一些其他图形文字,线性或角度,所有这些工作.甚至一些.png位图绘制到画布和背景图像…都正常看.但是,在圆形路径中绘制的文字如下所示:

我没有对位图进行缩放,只需保存画布图像:

FileOutputStream fos = new FileOutputStream(saveFile);
        this.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
        Bitmap bitmap = this.getDrawingCache();


        bitmap.compress(CompressFormat.PNG, 100, fos);
        fos.flush();
        fos.close();

为什么文本看起来扭曲?有没有人看到我的错误?提前致谢….

编辑

我尝试了一些东西,发现设置anyDensity为false或禁用硬件加速在Manifest将显示在运行时的效果在保存之前.这对我来说,当使用getDrawingCache()保存位图时,缩放在此时被禁用.但为什么?

我发现最后一件事,曲率越低,文本缩放越低.如果文字只是有点弯曲,似乎很好.

我会尝试设置

this.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);

在绘制屏幕之前,因为较低的质量可能意味着文本的更简单的转换.这当然是猜测.目前,您只能在写入磁盘之前设置高品质.或者将其从写入磁盘方法中删除,以检查它是否影响文本的绘制方式.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/16656453/unwanted-warp-effect-drawing-text-on-path-android


以上所述就是小编给大家介绍的《不需要的变形效果在路径android上绘制文本》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

群体智能

群体智能

James Kennedy、Russell C Eberhart、Yuhui Shi / 人民邮电出版社 / 2009-2-1 / 75.00元

群体智能是近年来发展迅速的人工智能学科领域.通过研究分散,自组织的动物群体和人类社会的智能行为, 学者们提出了许多迥异于传统思路的智能算法, 很好地解决了不少原来非常棘手的复杂工程问题.与蚁群算法齐名的粒子群优化(particle swarm optimization, 简称PSO)算法就是其中最受瞩目,应用最为广泛的成果之一. 本书由粒子群优化算法之父撰写,是该领域毋庸置疑的经典著作.作者......一起来看看 《群体智能》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具