Skip to content

pixelRatio for rendered Flutter widget should default to the device's pixel ratio #205

Open
@ueman

Description

@ueman

When creating screenshot widget with

var path = await HomeWidget.renderFlutterWidget(
  const LineChart(),
  key: 'lineChart',
  logicalSize: const Size(400, 400),
  pixelRatio: 3,
);

You're able to set a pixelRatio. This should default to whatever is set in MediaQueryData.devicePixelRatio. Another way of accessing that data should be possible via the PlatformDispatcher.instance.implicitView.devicePixelRatio.

It should default to whatever the current device pixelratio is, since otherways I always have to manually set it to that value. So by doing this already inside the app, it improves the quality of life of the users.

So this

var path = await HomeWidget.renderFlutterWidget(
  const LineChart(),
  key: 'lineChart',
  logicalSize: const Size(400, 400),
  pixelRatio: PlatformDispatcher.instance.implicitView?.devicePixelRatio ?? 3,
);

becomes this

var path = await HomeWidget.renderFlutterWidget(
  const LineChart(),
  key: 'lineChart',
  logicalSize: const Size(400, 400),
);

and the screenshot of the widget is always in the correct resolution.

Additionally, I believe this piece of code

devicePixelRatio: 1.0,

should also reuse the configured pixel ratio, right?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions