zoukankan      html  css  js  c++  java
  • Android中Paint的一些使用心得记录

    Paint是Android api中绘制文字,图形的重要类,位于android.graphics包下,这个类早早就出现了。类似于JavaScript中的Paint,Paint的使用也离不开Canvas。

    Paint实际不是真正的"画笔",实际作"画"的是底层,对graphics包下的这个Paint是不可见的,这个Paint封装了各种作画的参数。

    初始化Paint,可以直接通过默认的构造器

    Paint mPaint = new Paint();

    常用的方法。(getXXX,isXXX等省略)

    • setTextSize() :如果要绘制文字,一般需要设置字体大小,不然默认绘制12px,该方法决定两个小写'x'字母的宽度。
    • setColor(int color):传入一个十六进制的颜色参数,可设置ARGB的颜色
    • setStyle(int style): 设置画笔风格,有FILL,STROKE,FILL_AND_STROKE三种选择
    • setStrokeWidth(float width):设置画笔粗细
    • setAntAlias(boolean):设置是否防锯齿
    • setDither(boolean):设置是否防抖动。在绘制图片时,如果有超过屏幕能显示最大效果时,这个决定了如何down-sample(降低取样)。如果为false,绘制速度会变快,但绘制的颜色精度会下降(比如8888->565),true则会试图在这个down-sample中 修正这些错误,使得画面较为柔和。
    • setFlags(int flag):设置画笔的各项参数,与setXXX方法有同样的效果,比如setFlags(ANTI_ALIAS_FLAG) 等效于setAntiAlias(true)
    • 无清除flag的方法,Paint提供reset()方法,重置画笔所有参数

    内部类

    • Paint.FontMetrics和Paint.FontMetricsInt:包含float或int类型的五个值-top,bottom,ascent,descent,leading。分别代表在给定的一个textsize下,一段文字可以绘制的最高处的Y值;可绘制的最低处的Y值;一段文字中单个字符可以到达的最高Y值;一段文字中单个字符可以到达的最低Y值;字体间的间距。在android字体坐标系中,默认原点位于左下角,X轴与基线重合,所以top,ascent为负值,bottom,descent为正值。不同的字体,在同样的文本和size下,这五个值也不尽相同。FontMetrics类中的五个为Float,FontMetricsInt则为Int类型,是前者向下取整的结果。
    • Paint.Align:包括LEFT,CENTER,RIGHT。以原点为基准,分别绘制在原点右侧,原点两侧,原点左侧。给人的感觉好像是原点移动了。
  • 相关阅读:
    Docker 部署 Nginx
    Docker 安装 Redis
    linux shell "2>&1"
    定时备份docker mysql
    SpringBoot 中拦截器和过滤器的使用
    SpringBoot WebMvcConfigurer
    springboot自定义参数解析HandlerMethodArgumentResolver
    mysql在linux下查看my.cnf位置的方法
    Linux下设置mysql允许远程连接
    Android项目实战(六十):修改项目包名
  • 原文地址:https://www.cnblogs.com/chitanta/p/9032525.html
Copyright © 2011-2022 走看看