当前位置:网站首页>Detailed explanation of the use of staticlayout
Detailed explanation of the use of staticlayout
2022-07-05 10:11:00 【A bird carved in the desert】
stay Android In development ,Canvas.drawText Don't wrap , Even a very long string will only display one line , The excess will be hidden from the screen .
StaticLayout yes android A tool class for processing text in ,StaticLayout Solved the problem of word wrapping , As an example :
package com.zhy.someuitest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
public class StaticLayoutView extends View {
StaticLayout staticLayout;
public StaticLayoutView(Context context) {
this(context, null);
}
public StaticLayoutView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public StaticLayoutView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
textPaint.setColor(Color.BLACK);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setTextSize(50);
String text = " stay Android In development ,Canvas.drawText Don't wrap , Even a very long string will only display one line , The excess will be hidden from the screen .StaticLayout yes android A tool class for processing text in ,StaticLayout Solved the problem of word wrapping ";
staticLayout = new StaticLayout(text, textPaint, canvas.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
staticLayout.draw(canvas);
}
}
Staticlayout There are three construction parameters in :
With public StaticLayout(CharSequence source, int bufstart, int bufend,
TextPaint paint, int outerwidth,
Alignment align,
float spacingmult, float spacingadd,
boolean includepad,
TextUtils.TruncateAt ellipsize, int ellipsizedWidth) {
this(source, bufstart, bufend, paint, outerwidth, align,
TextDirectionHeuristics.FIRSTSTRONG_LTR,
spacingmult, spacingadd, includepad, ellipsize, ellipsizedWidth, Integer.MAX_VALUE);
} Explain the function of parameters
CharSequence source Need a string of branches
int bufstart The string that needs to be branched starts at the position of
int bufend Where does the string for the branch end
TextPaint paint Brush object
int outerwidth layout Width , Wrap when exceeded
Alignment align layout The right way to do it , Yes ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE Three
float spacingmult Relative row spacing , Relative font size ,1.5f Indicates that the line spacing is 1.5 Times the font height .
float spacingadd How much to add to the base line spacing
boolean includepad,
TextUtils.TruncateAt ellipsize Where to start omitting
int ellipsizedWidth More than how many begin to omit
Add :TextView In fact, it is also used StaticLayout
边栏推荐
- 程序员搞开源,读什么书最合适?
- The king of pirated Dall · e? 50000 images per day, crowded hugging face server, and openai ordered to change its name
- MySQL character type learning notes
- Dedecms website building tutorial
- 天龙八部TLBB系列 - 单体技能群伤
- NCP1342芯片替代料PN8213 65W氮化镓充电器方案
- StaticLayout的使用详解
- 硬核,你见过机器人玩“密室逃脱”吗?(附代码)
- Tdengine already supports the industrial Intel edge insight package
- View Slide
猜你喜欢
How Windows bat script automatically executes sqlcipher command
Application of data modeling based on wide table
Fluent generates icon prompt logo widget
Roll up, break through 35 year old anxiety, and animate the CPU to record the function call process
Tdengine can read and write through dataX, a data synchronization tool
. Net delay queue
[system design] index monitoring and alarm system
Understand the window query function of tdengine in one article
How to use sqlcipher tool to decrypt encrypted database under Windows system
Apache dolphin scheduler system architecture design
随机推荐
如何判断线程池已经执行完所有任务了?
如何写出高质量的代码?
Unity particle special effects series - the poison spray preform is ready, and the unitypackage package can be used directly - next
硬核,你见过机器人玩“密室逃脱”吗?(附代码)
LiveData 面试题库、解答---LiveData 面试 7 连问~
一种用于干式脑电图的高密度256通道电极帽
【小技巧】獲取matlab中cdfplot函數的x軸,y軸的數值
[tips] get the x-axis and y-axis values of cdfplot function in MATLAB
Apache DolphinScheduler 入门(一篇就够了)
A high density 256 channel electrode cap for dry EEG
(1) Complete the new construction of station in Niagara vykon N4 supervisor 4.8 software
Wechat applet - simple diet recommendation (3)
MySQL字符类型学习笔记
La vue latérale du cycle affiche cinq demi - écrans en dessous de cinq distributions moyennes
ArcGIS Pro creating features
Flutter development: a way to solve the problem of blank space on the top of listview
ConstraintLayout官方提供圆角ImageFilterView
Node red series (29): use slider and chart nodes to realize double broken line time series diagram
View Slide
Wechat applet - simple diet recommendation (4)