建网站 找个人,2017网站开发语言排名,怎么创建网站文件夹,做好中心网站建设工作在Android中我们可以通过脚本来动态生成适配于各个厂商的屏幕的相对尺寸。
那么在Flutter中我们如何通过相同的思路来实现同样的效果呢#xff1f;我们知道#xff0c;Android的每个厂商的屏幕大小存在非常大区别。有些长#xff0c;有的短#xff0c;有的粗#xff0c;有…在Android中我们可以通过脚本来动态生成适配于各个厂商的屏幕的相对尺寸。
那么在Flutter中我们如何通过相同的思路来实现同样的效果呢我们知道Android的每个厂商的屏幕大小存在非常大区别。有些长有的短有的粗有的细这个的确給用户提供了非常多的选择但是对于开发来说就比较苦恼了。
那么来看看具体该怎么实现吧其实很简单首先我们和UI约定UI图中的设备宽高是多少在我们这里是宽375高812。然后如下就是具体的实现代码使用的方式也很简单比如说在UI图中标记出是1pt的尺寸我们完全可以通过1.pt的方式来指定其尺寸。
这里定义了两种尺寸pt和hpt这两个有什么区别呢pt表示横向的尺寸hpt表示纵向的尺寸。
请注意如果使用这两种尺寸存在一些问题比如遇到尺寸不是375*812的尺寸的设备那些方块的图形就会被拉伸成长方形。
对于这种情况我们就需要将图片宽度和高度都设置成pt即可Android本来就不同于IOS不可能那么精准地设置每个组件的位置和大小。
import dart:ui as ui;/// 屏幕的宽度
double get deviceWidth ui.window.physicalSize.width / ui.window.devicePixelRatio;/// 屏幕的高度
double get deviceHeight ui.window.physicalSize.height / ui.window.devicePixelRatio;/// 尺寸扩展需要确保UI提供的图的高度是372*812这个根据具体的项目而定UI要是这么坑就砍死他
const int _physicalWidth 375;
const int _physicalHeight 812;extension IntExt on int {///宽度拓展double get pt deviceWidth / _physicalWidth * this;///高度拓展double get hpt deviceHeight / _physicalHeight * this;
}
extension DoubleExt on double {///宽度拓展double get pt deviceWidth / _physicalWidth * this;///高度拓展double get hpt deviceHeight / _physicalHeight * this;
}