Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用TextPaint子类时,StaticLayout断字_Java_Android - Fatal编程技术网

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吗?如果是,是否有解决方法

截图: