首页 > 编程知识 正文

DrawerLayout,android:layout_margin

时间:2023-05-03 05:49:11 阅读:155014 作者:2283

静态布局实现了文本绘制的自动换行符。 使用canvas drawtext绘制文本不会自动换行。 即使是长字符串,drawText也只会显示一行,超出的部分会从画面中被隐藏。 虽然可以计算每个字符的宽度,然后用一定的算法将字符串分割为多个部分,每个部分都可以调用drawText的部分显示,但这种显示效率不高。

使用canvas drawtext绘制文本时,不会自动换行。 即使是长字符串,drawText也只会显示一行,超出的部分会隐藏在画面之外。 虽然可以计算每个字符的宽度,然后用一定的算法将字符串分割为多个部分,每个部分都可以调用drawText的部分显示,但这种显示效率不高。

静态布局是用于在android中处理字符换行符的工具类。 静态布局实现了文本绘制换行符处理。 静态布局的使用示例如下所示。

package com.example.amdroidstaticlayoutdemo; import Android.support.v4.app.fragment; import Android.text.layout.alignment; import Android.text.static layout; import android.text.TextPaint; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import Android.graphics.paint.style; import android.os.Bundle; import Android.util.attributes et; import Android.view.layoutinflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.os.Build; publicclassmainactivityextendsactivity { @ overrideprotectedvoidoncreate (bundlesavedinstancestate ) super.oncreate ) saveded } publicclassmyviewextendsview { paintmpaint; //画笔中包含绘制图形、文本等的样式和颜色信息的公共我的视图(context context ) super (context ); }公共我的视图(context context,AttributeSet attrs ) ) super ) context,attrs ); }公共void ondraw (canvas canvas ) super.ondraw (canvas ); TextPaint tp=new TextPaint (; TP.setcolor(color.blue; TP.setstyle(style.fill; TP.settextsize(50; String message='paint,draw paint指用油画、水彩、水墨画等颜色描绘,draw通常指用铅笔、钢笔、粉笔描绘,后者通常不涂颜料。 两动词的相应名词分别为p '; staticlayoutmystaticlayout=newstaticlayout (message,tp,canvas.getWidth ),Alignment.ALIGN_NORMAL,1.0f,1.0f canvas.restore (; } }

这与TextView的效果相同,但实际上TextView也调用了StaticLayout来实现换行符。

静态布局的构造函数有三个。

公共静态布局(charsequencesource,TextPaint paint,int width,Layout.Alignment align,float spacingmult, 浮动空间多通道布局(public static layout (charsequencesource,int bufstart,int bufend,TextPaint paint,int out out ) layouth float spacingmult,float spacingadd,booleanincludepad (public static layout (charsequencesource,int bufstart,int bufstart,int bufend ) ) int bufend int outerwidth,Layout.Alignment align,float spacingmult,float spacingadd,boolean includepad,textutils.truncalt

安卓静态布局参数的解释

static layout (charsequencesource,int bufstart,int bufend,

TextPaint paint,int outerwidth,

对齐对齐,

浮动间隙,浮动间隙添加,

布尔型密码、

TextUtils.TruncateAt ellipsize,int ellipsizedWidth )

1 .需要分行字符串

2 .需要分行的字符串从第几个开始

3 .需要分行的字符串在哪里结束

4 .画笔对象

5.layout的宽度,字符串超过宽度时自动换行。

6.layout的其方式有ALIGN_CENTER、ALIGN_NORMAL、ALIGN_OPPOSITE三种。

7 .相对于行距、字体大小,1.5f表示行距为1.5倍的字体高度。

8 .基本行距增加多少

实际的行距等于这两者之和。

9 .参数未知

10 .从哪个位置省略

11 .超过什么就开始省略

注意,默认情况下,该layout绘制在Canvas的(0,0 )点上,如果需要调整位置,只能将Canvas的开始坐标移动到draw之前

canvas.translate(x,y );

以上是关于Android开发的知识点概要。 静态布局实现了文本绘制的自动换行符。 更多相关内容,请继续关注拓胜科技安卓技术频道。 或者,您需要了解拓胜Android培训的相关问题。 请在线免费咨询拓胜教育老师。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。