我从Sencha Touch 2.1中的Carousel示例开始。在app.js文件中,我看到“startupImage”属性,它定义了我们想要使用的图像的不同大小。然而,我似乎无法找到有关此属性的任何文档。在文档中,他们谈论了特定于Apple iOS世界的“”和“”。但是,如果我们使用Sencha Touch,那是因为我们不想与特定的公司挂钩(这看起来很明显)。
我想知道的是,它是如何运作的?有2个参数,一个是resoluton,第二个是png文件的路径。我们可以修改第一个参数,还是必须制作符合这些数字的png文件?
Ext.application({
name: 'TestSencha',
requires: [
'Ext.MessageBox'
],
views: ['Main', 'PicViewer', 'Extras'],
icon: {
'57': 'resources/icons/Icon.png',
'72': 'resources/icons/Icon~ipad.png',
'114': 'resources/icons/Icon@2x.png',
'144': 'resources/icons/Icon~ipad@2x.png'
},
isIconPrecomposed: true,
startupImage: {
'320x460': 'resources/startup/320x460.jpg',
'640x920': 'resources/startup/640x920.png',
'768x1004': 'resources/startup/768x1004.png',
'748x1024': 'resources/startup/748x1024.png',
'1536x2008': 'resources/startup/1536x2008.png',
'1496x2048': 'resources/startup/1496x2048.png'
},
// rest of code goes here....
答案 0 :(得分:1)
我建议您在ST2 SDK中查看 src / core / Ext-more.js 。
基本上它会扫描应用程序配置中定义的startupImage
并测试设备的操作系统及其设备比例,并像这样调用addStartupImage
if (Ext.os.is.iPad) {
if (devicePixelRatio >= 2) {
// Retina iPad - Landscape
if ('1496x2048' in startupImage) {
addStartupImage(startupImage['1496x2048'], '(orientation: landscape)');
}
...
这是addStartupImage
:
function addStartupImage(href, media) {
var link = document.createElement('link');
link.setAttribute('rel', 'apple-touch-startup-image');
link.setAttribute('href', href);
if (media) {
link.setAttribute('media', media);
}
head.append(link);
}
以下是解释。
希望这有帮助