zoukankan      html  css  js  c++  java
  • Android 开发学习进程0.25 自定义控件

    自定义控件

    自定义控件空指针问题 ,构造函数要写成

      public MineTextTool(Context context) {
            this(context,null);
        }
    
        public MineTextTool(Context context, @Nullable AttributeSet attrs) {
            this(context, attrs,0);
        }
    
        public MineTextTool(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            getAttrs(attrs);
            init();
        }
    
    

    paint绘制文字

    paint.fontmetriccs 类度量字体有一下属性:

    1. 基准点是baseline
    2. Ascent是baseline之上至字符最高处的距离
    3. Descent是baseline之下至字符最低处的距离
    4. Leading文档说的很含糊,这个我还不清楚,但有人说是上一行字符的descent到下一行的ascent之间的距离,也有人说不是
    5. Top指的是指的是最高字符到baseline的值,即ascent的最大值
    6. 同上,bottom指的是最下字符到baseline的值,即descent的最大值
      即从上到下依次为 top ascent baseline desent buttom 同时需要注意的是top为负值,判断距离需要使用math.abs()获取绝对值。
     TextPaint textPaint = new TextPaint();
            textPaint.setTextSize(textSizePx);
            textPaint.setColor(textColor);
            int width = (int) Math.ceil(textPaint.measureText(text));
            Paint.FontMetrics fontMetrics = textPaint.getFontMetrics();
            int height = (int) Math.ceil(Math.abs(fontMetrics.bottom) + Math.abs(fontMetrics.top));
            Bitmap bitmap = Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap);
            canvas.drawText(text,0,Math.abs(fontMetrics.ascent),textPaint);
            return bitmap;
    
  • 相关阅读:
    docker基于commit命令创建支持ssh服务的镜像
    CentOS 6.5 下Nginx服务的安装与配置
    CentOS 6.5 下搭建vsftp服务
    CentOS 6.5 下搭建FastDFS服务
    CentOS 6.5 下Nginx服务的安装与配置
    CentOS 6.5 下搭建NTP服务器
    CentOS6.5 下Haproxy服务的安装与配置
    CentOS 6.5 下HeartBeat的安装与配置
    CentOS 6.5 下keepalived服务的配置
    IDE vscode识别webpack中alias配置路径
  • 原文地址:https://www.cnblogs.com/baimiyishu/p/13961085.html
Copyright © 2011-2022 走看看