正常我们在开始一个工程时,都会添加对应的桌面图标和启动页。从开始接触iOS开发,图片的来源是美术。直到后来,遇到了一个不懂如何切icon的美术。。。绞尽脑汁讲解之后,终于会了。然后又遇到了下一个不会的。。。于是终于找到了另一个方法,找到一款专门切图标的app,后来没更新,导致需要的图片尺寸不够,又换成了另一个app,请原谅我记不清名字了。后面又使用了 图标工厂,这个网页工具还是用了不少时间,除了可能不小心点到广告,还是很好用的,但是切启动页是付费的。。。直到现在,刚开了一个新工程的我发现,他切的图标数量不够,于是我又找到了现在的不求人方法,就是直接通过脚本来生成。过程非常简单,放入图片然后运行脚本,基本就秒生成。原理我就不多讲了,都是代码人,看脚本代码没啥难度,主要是之前也没这方面的意识。参考来源传送门。
我这边精简了脚本内容,去掉了说明,只生成了一套iOS的icon。
脚本内容:
#!/bin/sh
iosIconWithSize(){
sips -Z $1 icon.png --out ./ios/AppIcon.appiconset/icon_app_$1x$1.png
}
rm -r -f ios/AppIcon.appiconset
mkdir -p ios/AppIcon.appiconset
for iosSize in 40 60 58 87 76 114 80 120 180 128 192 136 152 167 1024
do
iosIconWithSize $iosSize
done
目前一个iPhone项目就只需要这些icon。
注意点:我这边使用的图片名称是 icon.png,脚本也是采用的这个名称,如果想偷懒直接用的话,就需要把放入的图片名改成icon.png。先看运行图:
只需要两步
1 cd 到文件夹
cd [文件路径]
2 执行脚本
sh icon.sh
到此就完成了。
下面附上一个启动页脚本代码,如果有需要其他尺寸的自己加就行
#!/bin/sh
androidScreenWithSize(){
sips -z 800 480 screen.png --out ./android/screen-hdpi-portrait.png
sips -z 640 360 screen.png --out ./android/screen-mdpi-portrait.png
sips -z 1280 720 screen.png --out ./android/screen-xhdpi-portrait.png
sips -z 1920 1080 screen.png --out ./android/screen-xxhdpi-portrait.png
sips -z 3840 2160 screen.png --out ./android/screen-xxxhdpi-portrait.png
}
iPhoneScreenWithSize(){
sips -z 960 640 screen.png --out ./ios/iphonePortraitiOS_640x960px.png
sips -z 1136 640 screen.png --out ./ios/iphonePortraitiOS_640x1136px.png
sips -z 1334 750 screen.png --out ./ios/iphonePortraitiOS_750x1334px.png
sips -z 1792 828 screen.png --out ./ios/iphoneXRPortraitiOS_828x1792px.png
sips -z 2208 1242 screen.png --out ./ios/iphonePortraitiOS_1242x2208px.png
sips -z 2436 1125 screen.png --out ./ios/iphoneXPortraitiOS_1125x2436px.png
sips -z 2688 1242 screen.png --out ./ios/iphoneXSMaxPortraitiOS_1242x2688px.png
}
rm -r -f android
rm -r -f ios
mkdir android
mkdir ios
androidScreenWithSize
iPhoneScreenWithSize
对的,就是从传送门抄的。记得不要忘记改图片名称哦。
、、
需要注意一点,因为icon是不改变长宽比例的,但是启动图是改变长宽比例的,所以一定存在长宽比例的问题。但是,但是现在iOS启动页是通过xib设置的,而不是以前的启动图了,也就是现在启动图其实就只有一张了,如果你全铺开的话。如果要做屏幕适配,就相当于要做一个适配的界面,有些元素可能就得切图了,等于多了一个界面,但是相对而言也比多张图要靠谱些。