2

适用于 Mobile+Tablet 的 Titanium 项目,完美地完成了移动版本,但在平板设计时面临一些复杂性。

以下是 Titanium 支持的限定符矩阵,但找不到任何针对 Android-Tablet 的限定符

在此处输入图像描述

我发现你可以通过将东西放在“ platform>android>res ”目录中来强制应用Android资源。

var tab = Titanium.UI.createTab({  
    icon:Ti.App.Android.R.drawable.tab_icon
});

使用 Tab 及其icon属性,我可以获得可绘制对象,但它不适用于其他控件(即 ImageView、Button、View 等...)
如何设置从平台文件夹获取图像的 ImageView 的背景?

欢迎任何提示/建议

4

2 回答 2

2

一切都很好,只是您将路径设置为字符串

IE。icon:'Ti.App.Android.R.drawable.tab_icon'.

相反,您必须像下面这样设置图像。

icon:Ti.App.Android.R.drawable.tab_icon

编辑

我找到了处理 Android 多分辨率的解决方案。

这是我放在resources/android/images文件夹中的资源

你可以看到图像

在这张图片中,我为每种类型的可绘制文件夹创建了不同的图片。您可以在所有文件夹中看到 bg.png。在 bg.png 我写了与可绘制文件夹相关的文本。

这是我的app.js文件,用于在 imageView 中显示图像

Titanium.UI.setBackgroundColor('#000');

var win1 = Titanium.UI.createWindow({  
    title:'Tab 1',
    backgroundColor:'#fff'
});

var view  = Ti.UI.createImageView({
    width : Ti.UI.SIZE,
    height : Ti.UI.SIZE,
    image : '/images/bg.png'

})

win1.add(view);
win1.open();

现在在您的设备中运行应用程序并检查您在 ImageView 中获得的图像。

注意::加载窗口后,如果您要更改方向,它将不会在 ImageView 中为该方向重新加载图像,因为默认情况下,Titanium 通过将android:configChanges="keyboardHidden|orientation"行放入自动生成的清单文件中来限制方向更改。

您可以通过将生成的清单文件从“/build/android/”复制到“/project directory/platform/android/”来更改此默认行为

复制此文件后,从“/project directory/platform/android/”目录打开清单文件并删除上面的行(android:configChanges="keyboardHidden|orientation")。

现在保存文件并运行应用程序,您也可以检查多方向。

同样对于平板电脑,您可以分别将图像保存在res-port-largeorres-port-xlargeres-land-largeorres-land-xlarge中用于纵向和横向。

编辑2 ::

还有另一种方法可以解决这个问题。在项目的根目录中创建以下文件夹。

Resources
platform
    -> res
        -> drawable
        -> drawable-ldpi
        -> drawable-mdpi
        -> drawable-hdpi
        -> drawable-xhdpi

现在将所有图像放在相应的文件夹中。

现在,您可以从 javascript 文件中执行以下代码来访问这些文件。

var view  = Ti.UI.createImageView({
    width : Ti.UI.SIZE,
    height : Ti.UI.SIZE,
    image : Ti.App.Android.R.drawable.icon //Here icon is available to all above folders which we have created in /platform/res

})

享受!!

于 2013-01-11T05:39:55.673 回答
0

在对 Titanium 做了一些工作后,我得出结论,Titanium 遵循相同的命名 drawable 的标准,但唯一的区别是在我们使用的 android 中,drawable-hdpi但在 Titanium 中它是res-hdpi.

于 2013-01-22T04:40:24.640 回答