mirror of
https://github.com/flutter/samples.git
synced 2025-11-10 23:08:59 +00:00
43 lines
1.7 KiB
Dart
43 lines
1.7 KiB
Dart
// Copyright 2019 The Flutter team. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:math';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:gallery/data/gallery_options.dart';
|
|
|
|
double _textScaleFactor(BuildContext context) {
|
|
return GalleryOptions.of(context).textScaleFactor(context);
|
|
}
|
|
|
|
// When text is larger, this factor becomes larger, but at half the rate.
|
|
//
|
|
// | Text scaling | Text scale factor | reducedTextScale(context) |
|
|
// |--------------|-------------------|---------------------------|
|
|
// | Small | 0.8 | 1.0 |
|
|
// | Normal | 1.0 | 1.0 |
|
|
// | Large | 2.0 | 1.5 |
|
|
// | Huge | 3.0 | 2.0 |
|
|
|
|
double reducedTextScale(BuildContext context) {
|
|
double textScaleFactor = _textScaleFactor(context);
|
|
return textScaleFactor >= 1 ? (1 + textScaleFactor) / 2 : 1;
|
|
}
|
|
|
|
// When text is larger, this factor becomes larger at the same rate.
|
|
// But when text is smaller, this factor stays at 1.
|
|
//
|
|
// | Text scaling | Text scale factor | cappedTextScale(context) |
|
|
// |--------------|-------------------|---------------------------|
|
|
// | Small | 0.8 | 1.0 |
|
|
// | Normal | 1.0 | 1.0 |
|
|
// | Large | 2.0 | 2.0 |
|
|
// | Huge | 3.0 | 3.0 |
|
|
|
|
double cappedTextScale(BuildContext context) {
|
|
double textScaleFactor = _textScaleFactor(context);
|
|
return max(textScaleFactor, 1);
|
|
}
|