|
| 1 | +package com.akylas.canvas; |
| 2 | + |
| 3 | +import android.os.Build; |
| 4 | +import android.graphics.Typeface; |
| 5 | +import android.graphics.Paint; |
| 6 | +import android.text.TextPaint; |
| 7 | +import android.text.Layout; |
| 8 | +import java.lang.CharSequence; |
| 9 | + |
| 10 | +public class StaticLayout { |
| 11 | + |
| 12 | + public static android.text.StaticLayout createStaticLayout(CharSequence source, TextPaint paint, int width, |
| 13 | + Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad) { |
| 14 | + |
| 15 | + if (Build.VERSION.SDK_INT >= 24) { |
| 16 | + android.text.StaticLayout.Builder builder = android.text.StaticLayout.Builder |
| 17 | + .obtain(source, 0, source.length(), paint, width) |
| 18 | + .setBreakStrategy(android.text.Layout.BREAK_STRATEGY_SIMPLE).setAlignment(align) |
| 19 | + .setLineSpacing(spacingadd, spacingmult).setIncludePad(includepad); |
| 20 | + if (Build.VERSION.SDK_INT >= 26) { |
| 21 | + builder = builder.setJustificationMode(android.text.Layout.JUSTIFICATION_MODE_NONE); |
| 22 | + } |
| 23 | + return builder.build(); |
| 24 | + } else { |
| 25 | + return new android.text.StaticLayout(source, paint, width, align, spacingmult, spacingadd, includepad); |
| 26 | + } |
| 27 | + } |
| 28 | + |
| 29 | + public static android.text.StaticLayout createStaticLayout(CharSequence source, Paint paint, int width, |
| 30 | + Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad) { |
| 31 | + return createStaticLayout(source, new TextPaint(paint), width, align, spacingmult, spacingadd, includepad); |
| 32 | + } |
| 33 | +} |
0 commit comments