uni-app移动端项目中 @1x、@2x 图 和 @3x 图 的解决方案,列举几种方案
时间: 2024-02-03 12:13:16 浏览: 189
uni-app移动端项目中,@1x、@2x 图和@3x图的解决方案有以下几种:
1. 使用自适应布局方案,如flex布局,使用rem作为单位,根据不同屏幕尺寸的dpr值计算出不同的rem值,然后在CSS中使用rem单位来设置图片大小,从而实现图片大小的自适应。
2. 使用图片压缩工具将原始图片按照不同的dpr值生成相应的@1x、@2x和@3x图片,然后在代码中根据屏幕dpr值加载对应的图片,例如:
```
let dpr = uni.getSystemInfoSync().pixelRatio;
let imgSrc = '';
if (dpr === 1) {
imgSrc = 'path/to/1x/img.png';
} else if (dpr === 2) {
imgSrc = 'path/to/2x/img.png';
} else if (dpr === 3) {
imgSrc = 'path/to/3x/img.png';
}
```
3. 使用uni-app提供的内置组件uni-image,在组件中设置src属性为原始图片路径,uni-image会自动根据屏幕dpr值加载相应的@1x、@2x和@3x图片。
4. 使用CSS media query,在不同的屏幕尺寸下加载不同大小的图片,例如:
```
@media screen and (-webkit-min-device-pixel-ratio: 1.5) {
.img {
background-image: url(path/to/2x/img.png);
background-size: cover;
}
}
@media screen and (-webkit-min-device-pixel-ratio: 3) {
.img {
background-image: url(path/to/3x/img.png);
background-size: cover;
}
}
```
以上是几种常见的解决方案,开发者可以根据自己的需求选择适合自己的方式。
阅读全文