T 移动端设计稿是750的。那1px等于多少rpx?宽度110px等于多少rpx?
时间: 2023-02-06 16:34:15 浏览: 189
在微信小程序中,1 rpx 等于屏幕宽度的 1/750,也就是说,如果设计稿的宽度是 750,那么 1 px 就等于 1 rpx。所以,如果设计稿的宽度是 750,那么宽度 110 px 等于 110 rpx。
需要注意的是,微信小程序的 rpx 单位是会根据屏幕宽度自动调整的,所以在不同尺寸的屏幕上,同一个 rpx 单位所对应的真实像素数可能会不同。但是,在同一个设计稿上,1 px 始终等于 1 rpx。
相关问题
1px 等于 几rpx
1px 不一定等于多少个 rpx,因为它们之间的换算关系取决于设备的像素密度。在常见的高清晰度屏幕上,1px 约等于2rpx。但是在其他设备上可能会有所不同。因此,在进行移动端开发时,我们通常使用rpx作为单位来布局页面,这样可以保证在不同分辨率的屏幕上都能够有良好的显示效果。Rpx是微信小程序特有的单位,1rpx表示屏幕宽度的1/750,即一个屏幕宽度分成750份,1rpx表示其中的一份。
flutter 写一个screen_util类,目的是适配屏幕,支持px和rpx
好的,以下是一个支持 px 和 rpx 的 ScreenUtil 类,可以用于 Flutter 屏幕适配:
```dart
import 'package:flutter/material.dart';
class ScreenUtil {
static late double _screenWidth;
static late double _screenHeight;
static late double _pixelRatio;
static late double _statusBarHeight;
static late double _bottomBarHeight;
static late double _textScaleFactor;
static void init(BuildContext context) {
MediaQueryData mediaQuery = MediaQuery.of(context);
_screenWidth = mediaQuery.size.width;
_screenHeight = mediaQuery.size.height;
_pixelRatio = mediaQuery.devicePixelRatio;
_statusBarHeight = mediaQuery.padding.top;
_bottomBarHeight = mediaQuery.padding.bottom;
_textScaleFactor = mediaQuery.textScaleFactor;
}
static double get screenWidth => _screenWidth;
static double get screenHeight => _screenHeight;
static double get pixelRatio => _pixelRatio;
static double get statusBarHeight => _statusBarHeight;
static double get bottomBarHeight => _bottomBarHeight;
static double get textScaleFactor => _textScaleFactor;
static double setWidth(double widthPx) => widthPx * _screenWidth / 750;
static double setHeight(double heightPx) => heightPx * _screenHeight / 1334;
static double setSp(double fontSizePx) => fontSizePx * _textScaleFactor;
static double setBorderRadius(double radiusPx) => radiusPx * _pixelRatio;
static double setRpx(double rpx) => rpx * _screenWidth / 750;
}
```
使用方法:
在 MaterialApp 的 build 方法中调用 ScreenUtil.init(context),初始化 ScreenUtil 类。
```dart
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
ScreenUtil.init(context);
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
```
在布局中使用 ScreenUtil.setWidth、ScreenUtil.setHeight、ScreenUtil.setSp 和 ScreenUtil.setRpx 方法来适配宽度、高度、字体大小和 rpx。
```dart
Container(
width: ScreenUtil.setWidth(100),
height: ScreenUtil.setHeight(100),
margin: EdgeInsets.only(top: ScreenUtil.setHeight(20)),
padding: EdgeInsets.symmetric(horizontal: ScreenUtil.setWidth(20)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil.setBorderRadius(10)),
color: Colors.grey[200],
),
child: Text(
'Hello, World!',
style: TextStyle(fontSize: ScreenUtil.setSp(32)),
),
),
```
其中,setWidth 和 setHeight 方法用于适配宽度和高度,参数单位为 px;setSp 方法用于适配字体大小,参数单位为 px;setBorderRadius 方法用于适配边框半径,参数单位为 px;setRpx 方法用于适配 rpx,即屏幕宽度的 1/750,参数单位为 rpx。
阅读全文