当前位置:网站首页>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
边栏推荐
- Z-blog template installation and use tutorial
- 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
- 双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)
- 自动化规范检查软件如何发展而来?
- 天龙八部TLBB系列 - 关于技能冷却和攻击范围数量的问题
- Design and Simulation of fuzzy PID control system for liquid level of double tank (matlab/simulink)
- 程序员如何活成自己喜欢的模样?
- 如何写出高质量的代码?
- RMS to EAP is simply implemented through mqtt
- 硬核,你见过机器人玩“密室逃脱”吗?(附代码)
猜你喜欢
[tips] get the x-axis and y-axis values of cdfplot function in MATLAB
The comparison of every() and some() in JS uses a power storage plan
How to get the STW (pause) time of GC (garbage collector)?
Unity particle special effects series - the poison spray preform is ready, and the unitypackage package can be used directly - next
一个程序员的职业生涯到底该怎么规划?
MySQL character type learning notes
如何獲取GC(垃圾回收器)的STW(暫停)時間?
程序员搞开源,读什么书最合适?
Tdengine already supports the industrial Intel edge insight package
Implementation of smart home project
随机推荐
C#函数返回多个值方法
Generics, generic defects and application scenarios that 90% of people don't understand
美图炒币半年亏了3个亿,华为被曝在俄罗斯扩招,AlphaGo的同类又刷爆一种棋,今日更多大新闻在此...
Baidu app's continuous integration practice based on pipeline as code
Analysis on the wallet system architecture of Baidu trading platform
Application of data modeling based on wide table
Apache dolphin scheduler system architecture design
Node red series (29): use slider and chart nodes to realize double broken line time series diagram
Flutter development: use safearea
oracle和mysql批量Merge对比
如何判断线程池已经执行完所有任务了?
Mysql80 service does not start
Flutter development: a way to solve the problem of blank space on the top of listview
如何写出高质量的代码?
Android SQLite database encryption
@JsonAdapter注解使用
把欧拉的创新带向世界 SUSE 要做那个引路人
Implementation of smart home project
Wechat applet - simple diet recommendation (3)
Common fault analysis and Countermeasures of using MySQL in go language