zoukankan      html  css  js  c++  java
  • drawText文字绘制知识

    drawText(String text, float x, float y, Paint paint)

    x,y是基于文字基本线的,而不是android坐标系的左上角。

    使用staticLayout进行文字换行,它既可以为文字设置宽度上限来让文字自动换行,也会在   处主动换行

    例子:

    String text1 = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";  
    StaticLayout staticLayout1 = new StaticLayout(text1, paint, 600,  
            Layout.Alignment.ALIGN_NORMAL, 1, 0, true);
    String text2 = "a
    bc
    defghi
    jklm
    nopqrst
    uvwx
    yz";  
    StaticLayout staticLayout2 = new StaticLayout(text2, paint, 600,  
            Layout.Alignment.ALIGN_NORMAL, 1, 0, true);
    
    ...
    
    canvas.save();  
    canvas.translate(50, 100);  
    staticLayout1.draw(canvas);  
    canvas.translate(0, 200);  
    staticLayout2.draw(canvas);  
    canvas.restore(); 

    效果:

    StaticLayout 的构造方法是 StaticLayout(CharSequence source, TextPaint paint, int width, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad),其中参数里:

    width 是文字区域的宽度,文字到达这个宽度后就会自动换行; 
    align 是文字的对齐方向; 
    spacingmult 是行间距的倍数,通常情况下填 1 就好; 
    spacingadd 是行间距的额外增加值,通常情况下填 0 就好; 
    includeadd 是指是否在文字上下添加额外的空间,来避免某些过高的字符的绘制出现越界。

    如果你需要进行多行文字的绘制,并且对文字的排列和样式没有太复杂的花式要求,那么使用 StaticLayout 就好。

    Paint对文字绘制的辅助

    setTypeface(Typeface typeface)  设置字体样式

    setFakeBoldText(boolean fakeBoldText) 设置伪粗体

    setStrikeThruText(boolean strikeThruText) 是否加删除线

    setUnderlineText(boolean underlineText) 是否加下划线

    setTextSkewX(float skewX) 字体倾斜对应的角度

    setLetterSpacing(float letterSpacing) 设置字符间距,默认是0

     setTextAlign(Paint.Align align) 设置文字对齐方式,左对齐,右对齐,中间对齐等

    setTextLocale(Locale locale) 设置字体的语言区域,繁体中文,简体中文等

  • 相关阅读:
    Google Accounts,OpenID,OAuth
    Namespaces(命名空间)
    <Araxis Merge>Windows平台下的Merge概览
    <Araxis Merge>快速一览文件的比较与合并
    <Araxis Merge>保存文件
    <Stackoverflow> 声望和节制
    <Stackoverflow> 如何提问
    收集一些好用的搜索引擎
    一个简单的scrapy爬虫抓取豆瓣刘亦菲的图片地址
    应用python编写简单新浪微博应用(一)
  • 原文地址:https://www.cnblogs.com/krislight1105/p/10005902.html
Copyright © 2011-2022 走看看