原生调用react-native里面的图片

本文介绍了如何将React Native中的图片资源转换为Android本地路径,以满足Unity的使用需求。首先,通过resolveAssetSource获取图片,然后在Android端转换为Drawable,并写入本地,得到路径。
摘要由CSDN通过智能技术生成

最近接到了一个比较特殊的需求,要把rn写好的图片提供给unity(unity需要的是个本地路径,这不坑死人吗。。。)
整体思路:1、拿到rn图片 ,桥接方式给Android ;2、Android拿到图片 转换成drawable
3、通过io的方式写入到本地,拿到路径,大体就是这样 先说第一部
rn拿到的图片 require出来的都是数字,这样是行不通的,我们可以用这个类resolveAssetSource()
代码

var resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource');
    /**
     *设置背景
     */
    private setBackgroundImage = (mouthValue: any) => {
   
        let imgbackground =  resolveAssetSource(mouthValue)//mouthValue图片替换成require(’‘)图片路径
        NativeModules.ObenAvatarView.setBackgroundImage(imgbackground);
    }
    Android端
    @ReactMethod
    public void setBackgroundImage(ReadableMap path){
   
        String rnImageUri;
        try {
   
            rnImageUri = path.getString("uri");
            Log.i("showRNImage", "uri : " +Environment.getExternalStorageDirectory().getAbsolutePath());
            Drawable drawable = BitmapUtil.loadImage(rnImageUri);
            
        } catch (Exception e) {
   
            return;
        }

    }

这里您已经拿到Drawable了
BitmapUtil里面的代码


public class BitmapUtil {
   

    private static final String FILE_SCHEME = "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值