Как заставить нарисованные виды холста быть в точном измерении? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь заставить нарисованный вид иметь точное измерение. Независимо от того, как я пытаюсь он игнорирует размеры.

Код:

На мой взгляд, отрисовано в 250x250 пикселей:

public class MyCustomView extends View {
    public MyCustomView(Context context) {
        super(context);
    }

    public MyCustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        FlowLayout layout = new FlowLayout(getContext());

        for (int i = 0; i < 30; i++) {
            TextView textView = new TextView(getContext());
            textView.setText("[text#" + i + "]");
            textView.setBackgroundColor(Color.GREEN);
            layout.addView(textView);
        }

        int dimension = 250;

        layout.measure(
                dimension,
                dimension);

        layout.layout(0, 0,
                dimension,
                dimension);

        layout.draw(canvas);

    }
}

Результат:

enter image description here

Компоновка явно не визуализируется в 250x250 пикселей.

Если я поменяю FlowLayout на стандартную компоновку Android SDK, например, на Linear Layout, результат будет тот же.

Пожалуйста, помогите, если можете.

...