Java 使用TextPaint子类时,StaticLayout断字
我发现在使用Java 使用TextPaint子类时,StaticLayout断字,java,android,Java,Android,我发现在使用StaticLayout的自定义视图中,如果使用TextPaint的子类而不是TextPaint本身,断字就会中断 我的自定义视图: public class MyView extends View { String mText = "Using TextPaint: Recommendations"; TextPaint mTextPaint; StaticLayout mStaticLayout; public MyView(Context c
StaticLayout
的自定义视图中,如果使用TextPaint
的子类而不是TextPaint
本身,断字就会中断
我的自定义视图:
public class MyView extends View {
String mText = "Using TextPaint: Recommendations";
TextPaint mTextPaint;
StaticLayout mStaticLayout;
public MyView(Context context) {
super(context);
init();
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mTextPaint = new TextPaint2(); // Works fine with TextPaint();
mTextPaint.setTextSize(16 * getResources().getDisplayMetrics().density);
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
int width = Math.round(100 * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
StaticLayout.Builder builder = StaticLayout.Builder.obtain(mText, 0, mText.length(), mTextPaint, width)
.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL);
mStaticLayout = builder.build();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(getPaddingLeft(), getPaddingTop());
mStaticLayout.draw(canvas);
canvas.restore();
}
}
我的TextPaint
子类:
public class TextPaint2 extends TextPaint {
// Doesn't override anything
}
有人知道这里发生了什么吗?这是一个bug吗?如果是,是否有解决方法
截图: