当前位置:网站首页>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
边栏推荐
- Tdengine already supports the industrial Intel edge insight package
- The king of pirated Dall · e? 50000 images per day, crowded hugging face server, and openai ordered to change its name
- Fluent development: setting method of left and right alignment of child controls in row
- QT VT100 parser
- Wechat applet - simple diet recommendation (3)
- Is it really reliable for AI to make complex decisions for enterprises? Participate in the live broadcast, Dr. Stanford to share his choice | qubit · viewpoint
- Design of stepping motor controller based on single chip microcomputer (forward rotation and reverse rotation indicator gear)
- 一个程序员的职业生涯到底该怎么规划?
- ArcGIS Pro 创建要素
- 【系统设计】指标监控和告警系统
猜你喜欢

盗版DALL·E成梗图之王?日产5万张图像,挤爆抱抱脸服务器,OpenAI勒令改名

Hard core, have you ever seen robots play "escape from the secret room"? (code attached)

双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)

Kotlin Compose 多个条目滚动

如何写出高质量的代码?

剪掉ImageNet 20%数据量,模型性能不下降!Meta斯坦福等提出新方法,用知识蒸馏给数据集瘦身...

QT realizes signal transmission and reception between two windows

Understand the window query function of tdengine in one article

钉钉、企微、飞书学会赚钱了吗?

Pagoda panel MySQL cannot be started
随机推荐
Zblogphp breadcrumb navigation code
《剑来》语句摘录(七)
卷起來,突破35歲焦慮,動畫演示CPU記錄函數調用過程
Tdengine connector goes online Google Data Studio app store
Swift tableview style (I) system basic
Application of data modeling based on wide table
Implementation of smart home project
Swift set pickerview to white on black background
How to use sqlcipher tool to decrypt encrypted database under Windows system
Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图
Lepton 无损压缩原理及性能分析
ConstraintLayout官方提供圆角ImageFilterView
[200 opencv routines] 219 Add digital watermark (blind watermark)
Small program startup performance optimization practice
@JsonAdapter注解使用
Tianlong Babu TLBB series - single skill group injury
Unity粒子特效系列-毒液喷射预制体做好了,unitypackage包直接用 -下
Node red series (29): use slider and chart nodes to realize double broken line time series diagram
Six simple cases of QT
Cut off 20% of Imagenet data volume, and the performance of the model will not decline! Meta Stanford et al. Proposed a new method, using knowledge distillation to slim down the data set