当前位置:网站首页>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
边栏推荐
- Using directive in angualr2 to realize that the picture size changes with the window size
- ConstraintLayout官方提供圆角ImageFilterView
- Analysis on the wallet system architecture of Baidu trading platform
- 双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)
- Tianlong Babu TLBB series - questions about skill cooling and the number of attack ranges
- [NTIRE 2022]Residual Local Feature Network for Efficient Super-Resolution
- Kotlin compose multiple item scrolling
- Z-blog template installation and use tutorial
- Jupiter notebook shortcut key
- Design and Simulation of fuzzy PID control system for liquid level of double tank (matlab/simulink)
猜你喜欢
TDengine × Intel edge insight software package accelerates the digital transformation of traditional industries
Charm of code language
QT realizes signal transmission and reception between two windows
isEmpty 和 isBlank 的用法区别
基于单片机步进电机控制器设计(正转反转指示灯挡位)
Six simple cases of QT
Roll up, break through 35 year old anxiety, and animate the CPU to record the function call process
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
How Windows bat script automatically executes sqlcipher command
Uni app running to wechat development tool cannot Preview
随机推荐
【小技巧】獲取matlab中cdfplot函數的x軸,y軸的數值
QT realizes signal transmission and reception between two windows
单片机原理与接口技术(ESP8266/ESP32)机器人类草稿
Personal website construction tutorial | local website environment construction | website production tutorial
Design of stepping motor controller based on single chip microcomputer (forward rotation and reverse rotation indicator gear)
How Windows bat script automatically executes sqlcipher command
《微信小程序-基础篇》小程序中的事件与冒泡
To bring Euler's innovation to the world, SUSE should be the guide
学习笔记5--高精地图解决方案
Unity particle special effects series - the poison spray preform is ready, and the unitypackage package is directly used - on
Jupiter notebook shortcut key
A high density 256 channel electrode cap for dry EEG
程序员搞开源,读什么书最合适?
Apache DolphinScheduler 入门(一篇就够了)
leetcode:1200. 最小绝对差
H. 265 introduction to coding principles
C#函数返回多个值方法
如何獲取GC(垃圾回收器)的STW(暫停)時間?
【C语言】动态内存开辟的使用『malloc』
QT VT100 parser