Titanium / Appcelerator图像不会在Android上显示

时间:2016-02-25 18:20:02

标签: android appcelerator appcelerator-titanium

我回想起令人沮丧的冒险故事。这次关于钛的机器人侧的图像。

长话短说,无论是背景图像还是imageView对象中的普通图像,我都无法获得任何图像显示在Android上。

我将提供代码我尝试并保持极小和简单,以便可以轻松复制以用于我们的所有测试目的。

守则:

尝试以编程方式创建视图和图片:

index.js

var header = Ti.UI.createImageView({
    width: 300,
    image: '/images/header.png',
    width: 300
});

var win = Ti.UI.createWindow({
    backgroundColor: 'white',
    height: Ti.UI.FILL,
    title: 'test',
    width: Ti.UI.FILL
});

win.add(header);

win.open();

尝试#2普通jane .xml和.tss样式:

index.js:

$.index.open();

INDEX.XML:

<Alloy>
    <Window class="container">
        <Label id="label">Hello World!!</Label>
        <ImageView id='img1'></ImageView>
    </Window>
</Alloy>

index.tss:

".container": {
    backgroundColor: 'white'
}

"#img1": {
    width: 300,
    image: '/header.png',
    width: 300,
    top: 0,
    left: 0
}

文件位置(我将相同的图像复制到3个不同的位置以尝试获取某些内容):

  • 应用程序/资产/ header.png
  • 应用程序/资产/机器人/ header.png
  • 应用程序/资产/机器人/图像/ header.png

重要,我尝试过:

  • 使用&#34; /images/header.png
  • 使用&#34; images / header.png&#34;
  • 使用&#34; header.png&#34;
  • 使用&#34; /header.png"

3 个答案:

答案 0 :(得分:3)

首先,在ImageView属性中你提到了两倍的宽度,所以你可以删除一个声明并放置图像的高度,比如300(你可以把Ti.UI.SIZE保持宽高比)

其次,将图像分别放在app/asset/android/images/res-<density>内。用例如mdpi / hdpi / xhdpi替换<density>。 (你可以把它放在res-hdpi进行测试)

做一个干净的构建,然后检查它是否被反射。

答案 1 :(得分:1)

很简单!

合金示例:

将图片放在app/assets/images,例如app/assets/images/header.png

现在你的代码是

   <ImageView id='img1' image='/images/header.png'  ></ImageView>

.tss档案

"#img1": {
    width: 300,
    image: '/images/header.png',
    width: 300,
    top: 0,
    left: 0
}

结束!

答案 2 :(得分:1)

把你的形象: app/assets/images/header.png

然后使用

访问它
<ImageView id='img1' image="/images/header.png"></ImageView>

非常重要:在运行应用程序之前,请先尝试清理项目中您在资产文件夹中所做的每项更改!