canvas.DrawText让文字真正居中显示

转载 2016年08月28日 16:25:13

canvas.drawColor(getResources().getColor(R.color.colorPrimary));
        super.onDraw(canvas);
        float x = this.getX();
        float y = this.getY();
        int w = this.getWidth();
        int h = this.getHeight();
        Log.e("x", String.valueOf(x));
        Log.e("y", String.valueOf(y));
        Log.e("x+w/2", String.valueOf(x + w / 2));
        Log.e("y+h/2", String.valueOf(y + h / 2));
        Paint paint = new Paint();
        Rect rect = new Rect();
        paint.setTextAlign(Paint.Align.LEFT);
//        paint.setColor(getResources().getColor(R.color.white));
        paint.getTextBounds("click to scale", 0 , "click to scale".length(), rect);
        paint.setAntiAlias(true);
Paint.FontMetrics metricsInt = paint.getFontMetrics();
//        canvas.drawText("click to scale",(getMeasuredWidth() - rect.width()) / 2,(getMeasuredHeight() - metricsInt.descent - metricsInt.ascent) / 2,paint);
        /**
        * because param y is not the text show in center,but the baseline ,so we must set the baseline instead of text to display in center
        * */
        canvas.drawText("click to scale",(getMeasuredWidth() - rect.width()) / 2,(getMeasuredHeight() - (metricsInt.descent + metricsInt.ascent)) / 2,paint);



参考:http://blog.csdn.net/lovexieyuan520/article/details/43153275


源码下载:git@github.com:edwinsnao/AnimationDemo.git

html5 canvas 文字居中对齐

[color=eight:25px]html部门 [color=eight:25px] [color=eight:25px]css部门 [color=eight:25px]canva...
  • ufodsyfaa
  • ufodsyfaa
  • 2013年07月08日 10:56
  • 2401

android canvas drawText()文字居中

drawText()文字居中方法
  • zly921112
  • zly921112
  • 2015年12月25日 11:09
  • 13227

Android Canvas drawText实现中文垂直居中

目标: 把中文字符绘制到目标矩形的居中位置。 问题: Android的Canvas绘图,drawText里的origin是以baseline为基准的,直接以目标矩形的bottom传进drawText,...
  • hursing
  • hursing
  • 2014年01月24日 10:32
  • 60458

android中canvas.drawText参数的介绍以及绘制一个文本居中的案例

在自定义View中,会经常遇到canvas.drawText这个方法,很多新手都不明白这个方法参数的含义,经过我不断的Google和多次的测试,把我的经验写出来供大家参考,错误之处,欢迎大家给我留言,...
  • lovexieyuan520
  • lovexieyuan520
  • 2015年01月26日 16:20
  • 50751

android canvas 文字居中

android canvas文字居中
  • baidu_20386763
  • baidu_20386763
  • 2016年12月06日 09:52
  • 325

Android Canvas 文字水平垂直居中

Android中很多时候,因为各种原因,我们需要自己使用canvas.drawText方法把文字绘制上去。但是,这时候问题来了,为了美观,我们需要将文字水平垂直居中。drawText的参数比较复杂,真...
  • qtstsq55
  • qtstsq55
  • 2016年12月22日 21:59
  • 736

canvas drawText文字垂直居中

原文:http://blog.csdn.net/hursing/article/details/18703599 关键代码Paint.FontMetricsInt fontMetrics = mPa...
  • lonewolf521125
  • lonewolf521125
  • 2016年05月04日 17:52
  • 1322

html5 canvas画布居中

今天写一个demo的时候想把canvas的画布居中,一开始代码是这样的: 如图,设置了canvas的margin:0 auto;可是显示效果并不居中,如下图: 只有黑色的边框,怎么解决呢? 给...
  • qq_21577869
  • qq_21577869
  • 2016年03月23日 17:50
  • 9893

DrawText多行文本垂直居中

要使用DrawText后的文本居中,可以使用DT_CENTER,要垂直居中,直接|DT_VCENTER,或者再加上|DT_SINGLELINE,但是这样只对单行文本有效,多行带换行的文本怎么实现Dra...
  • winnyrain
  • winnyrain
  • 2011年08月28日 17:35
  • 8742

Canvas.drawText()时,文字基线baseline的计算

文字的范围是asent的高度加上desent的高度,所以我们只要让文字上边界与top线的距离跟下边界与bottom线的距离相等即可,然后baseline的Y坐标就是文字上边界与top线的高度加上asc...
  • xuxingxing002
  • xuxingxing002
  • 2016年03月24日 14:42
  • 2140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:canvas.DrawText让文字真正居中显示
举报原因:
原因补充:

(最多只允许输入30个字)