当前位置: 首页 > ds >正文

解决react-native下背景图渲染,统一处理组件BackgroundImage

import {Image,ImageResizeMode,StyleProp,View,ViewStyle
} from 'react-native';function formatSrc(src: string) {if (!/^url\(.+?\)$/.test(src)) {return src;}return src.substring(4, src.length - 1);
}export interface BackgroundImageProps {/*** 图片地址,可以是 plaintext 或者 `url()` 的样式语法*/src?: string | null;/*** 作用于组件外层容器的样式** @defaults {}*/style?: object;/*** 图片缩放模式** 参考: https://reactnative.dev/docs/image#resizemode** @defaults 'cover'*/resizeMode?: ImageResizeMode;
}/*** 背景图样式的<Image>替代实现** @example** ```* <BackgroundImage src={'http://foo.bar'}></BackgroundImage>* ```*/
export function BackgroundImage(props: BackgroundImageProps) {const { src, style = {}, resizeMode = 'cover' } = props;if (!src) {return null;}const containerStyle: StyleProp<ViewStyle> = {position: 'absolute',top: 0,left: 0,right: 0,bottom: 0,...style};const contentProps = {style: {flex: 1,resizeMode},source: {uri: formatSrc(src)}};return (<View style={containerStyle}><Image {...contentProps} /></View>);
}

直接调用

<BackgroundImage src={'http://foo.bar'}></BackgroundImage>
http://www.xdnf.cn/news/3208.html

相关文章:

  • 【Python笔记 05】 if判断、比较运算符与逻辑运算符
  • 《AI大模型应知应会100篇》【精华】第40篇:长文本处理技巧:克服大模型的上下文长度限制
  • 如何防止丝杆支撑座锈蚀?
  • MIT6.S081-lab7
  • 第12讲:组合多图(Patchwork)艺术
  • C++复习补充 IO
  • Nginx核心功能与LNMP部署
  • C语言Makefile编写与使用指南
  • 小米喷墨打印机Mi All-in-One Inkjet Printer电脑通过管理打印设备扫描文件方法完整记录
  • 「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具
  • 使用O_DIRECT + 批量写数据到磁盘对丢包率的优化
  • Hanko:身份验证和用户管理解决方案,Clerk Auth0 的开源替代
  • [密码学实战]SDF之对称运算类函数(四)
  • 【缓冲区分析】叠加分析-要素叠加
  • Plesk 下的 IP 地址管理
  • MicroBlaze软核的开发使用
  • 分步详解:凤凰6000模拟器接入Unity Input System‌(
  • docker排查OOM Killer
  • SVN子路径权限设置及登录方法详解
  • docker学习笔记6-安装wordpress
  • AB3 有效括号序列
  • C++的vector中emplace_back() 与 push_back() 的区别
  • 新型电子式EDT-5土动三轴实验系统
  • NodeJS读写(同步异步、流式、分片策略)
  • CentOS环境下搭建seata(二进制、MySQL)
  • 安装deepspeed时出现了以下的错误,如何解决CUDA_HOME does not exist
  • vue3+flex动态的绘制蛇形时间轴
  • 远程桌面导致Quartus 破解失效
  • Silvaco仿真中的victory mesh
  • 【MySQL数据库】--1.安装教程