但是有些react-native开发者不会替换图片,因为压根没有学android开发,这样能理解,那么如何让他们更轻松的玩转react-native之android呢,那么看看下面的姿势大全吧,修改项目图片,掌握apk的结构,修改 qq的图片 修改qq布局资源都不在话下。
知识普及
arr实际上也是压缩包,所以直接替换压缩包里面文件就可以修改,
apk实际上也是压缩包,替换压缩包里面的图片当然也可以修改,但是这个需要签名才能进行安装,修改之后需要重新签名。
因为是压缩包,所以图片是如何来的都可以通过打开apk文件进入对应的图片文件夹查看对应的图片。如drwable-xxhdpi,或者assets文件夹
替换的多种方式概要
如arr库,
或者是纯项目库(图片资源就在项目文件夹)。
替换方法至少有2种:暴力修改法:
arr:可以直接打开arr压缩包替换图片
lib:对于第三方纯库则直接替换对应资源文件,这种方法会导致源sdk被侵入修改,不那么推荐。主模块同名替换法
新建相同文件夹建立相同名字的资源文件,
如arr压缩包里面的drawable-xxhdpi里面有a.png那么我的主项目模块里面也在drawable-xxhdpi里面放一个a.png
对于图片纯了直接用图片也可以新建同名xml指向其他图片
修改源sdk方式
对于arr
则直接打开压缩包解压然后找到找到要替换的图片记住他的名字,然后打开arr包进入这个图片相应的文件夹覆盖图标,图标可能有多套也可能只有一套,如
在drawable-xxhdpi
有一个叫a.png ,在drawable-xhdpi
等等,根据比例替换即可,如果不想弄这么多适配,或者ui懒得切只切了1920x1080也就是drawable-xxhdpi
的,尽量把drawable-xhdpi ,drawable-hdpi,drawable-mdpi
里面的同名图片删除
保留drawable-xxhdpi
里面的即可。
对于lib工程
一样的道理,只不过不需要修改压缩包而是直接修改工程
保持源sdk不变方式
如下图有arr或者 纯第三方gradle库的结构下有如下图片xxxx.aar\res\drawable-xxhdpi-v4 - ZIP archive, unpacked size 4,238,438 bytes
![](https://i-blog.csdnimg.cn/blog_migrate/3920c3cb4d35f4da7c5fd20b3c7c97eb.png)
从上图看drawable-xxhdpi-v4里面有bcs_num_del.png,
替换方法:
在app项目的res文件夹新建drawable-xxhdpi文件夹,弄一个同名文件
![](https://i-blog.csdnimg.cn/blog_migrate/35d5b55e08d2dea581f4c1250d85e9d6.png)
如下图就放了一个同名文件
![](https://i-blog.csdnimg.cn/blog_migrate/d4ab591dc6c0209fc7b1789140b6bd3f.png)
打包成apk之后会优先使用主项目工程的图片,
对于布局xml,动画文件,等修改也是同样的道理。
注意:
这种方式需要注意一个细节,如果arr压缩包的
那么如果drawable-xhdpi-v4
,drawable-hdpi-v4
等文件夹也有的话,就需要把arr压缩包其他文件夹里面里的同名文件删掉,或者你也模仿在app模块res下新建这个文件夹然后也弄一个同名图片,如果不这样做造成的问题是在这个比例的手机上 比如drawable-xhdpi是1080x768手机,那么这个手机的图片还是原来sdk第三方的图片。
,当然其他方式也差不多,要么采用删除大法保留一个文件,要么就是全部同等在app模块创建这么多图片,或全部替换。
补漏细节
由于arr里面一般是携带-v4的要实现用app主模块新建同名文件实现替换效果必须主模块文件夹也和arr里面文件夹一样,我之前设置不一样会导致开发工具提示错误。
校验结果
打包成apk之后直接用压缩包工具打开查看一下这些目录是否图片已经替换了。
关于v4
打包之后会变成v4,所以不用管,工程里面不需要加-v4打包完成之后会自动放到drwable-***-v4里面,但是要替换arr里面的图片就必须和arr里面的一样有v4的必须有才能替换掉。