Android上的RN不能展示尺寸大的图,怎么办?

在Android应用中使用React Native(RN)时,由于一张750x4520像素的大图超过了设备的最大纹理尺寸(4096x4096),导致图片无法渲染。为了解决此问题,可以利用RN的WebView组件加载图片,WebView对图片的优化较好且支持多种格式。通过将图片内容作为HTML字符串传给WebView,可以成功显示大图。总结来说,对于营销界面,使用H5配置界面更为便捷,但在前端资源有限的情况下,结合WebView展示大图也是可行方案,展示了前端技术的融合趋势。
摘要由CSDN通过智能技术生成

背景

最近遇到一个营销的需求,一个简单的界面,上面是一个计数器,下面是一张介绍图。所以下面直接用了Image标签来做。但是在测试中发现了一个问题,部分的Android手机上面展示不出来图片。使用Android studio检查了下log,发现了如下的错误:

OpenGLRenderer: Bitmap too large to be uploaded into a texture (750x4520, max=4096x4096

这个因为图片的尺寸过大(注意,不是大小哦),导致Android手机不能渲染,那么怎么解决这个问题呢?

解决

这里推荐使用webView,RN提供的webView功能还算强大,可以把它作为一个容易来装图片,最重要的是,大部分的Android手机对webView的优化还是非常不错的。而且webView还支持多种格式,你甚至可以把html代码写入一个字符串中传给webView。具体请参考wiki:http://reactnative.cn/docs/0.43/webview.html#content

实现代码如下:

let leftNum = this.getLeftNumberText();
        const HTML = `
            <!DOCTYPE html>\n
            <html>
              <head>
                <title>Hello Static World</title>
                <meta http-equiv="content-type" content<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值