さて、標準的な答えが私のために働くことは決してありませんでした。ここではチタン2.1を使用しています。{ここにTi開発者の遺産についての侮辱を挿入}
これに対する解決策は単純です。ここで説明するように、自慢の「スマートチタン密度固有の解決策」を使用しないでください。
http://docs.appcelerator.com/titanium/2.1/index.html#!/guide/Using_density-specific_resources_on_Android
代わりに、このシンプルで家庭的なコードを使用して問題を修正してください。
var density = (Titanium.Platform.displayCaps.dpi <= 160) ? 'low' : (Titanium.Platform.displayCaps.dpi > 160 && Titanium.Platform.displayCaps.dpi < 240) ? 'medium' : 'high';
var preamble = (Ti.Platform.osname === 'iphone' || (Ti.Platform.osname === 'ipad') )? 'images':'android/images/'+density + '/';
さて、最初のビットは密度を設定します-注私は今Tiの適切な密度の読み取り値を知りません、私はそれらを解決するまでこれを上げています-そして2番目のビットはアプリがAndroidの場合それを使用します1。
次に、私が以前持っていた場所:
var aboutTab = Ti.UI.createTab({
icon: 'images/about.png',
title: 'about',
window: about
});
私は今持っています:
var aboutTab = Ti.UI.createTab({
icon: preamble + '/about.png',
title: 'about',
window: about
});
そしてそれはそれです!
最終的な言葉:使用するチタンのバージョン(2.1.3と2.1.0)または使用するAndroid SDKによって、これが非常に異なる動作をする可能性があることに気づきました。私は2.1.0と4.2androidで最高の結果を出しました、そしてそれは'images'プレフィックスの使用を含みます(あなたが知っている、ガイドがそれをするように言う方法)。
私が気づいたことの1つは、高/中/低フォルダーとhdpiフォルダーの両方を持つことができないということでした。どちらか一方が必要です。
私が直面したもう1つの問題は、コードがandroid /images/フォルダーをロードしない場合があることでした。これを行うための完全に防弾の方法は、私が説明したコードを使用することですが、密度固有のフォルダーを画像フォルダーのすぐ下に置き、images /high/などを介してそれらを参照します。画像のコンテンツは常にコピーされます、および示されているコードは、Tiのバージョンに関係なく常に機能します。
最後に、画像は大文字と小文字を区別して名前が付けられていることを確認してください。これは、Windowsエミュレーターでは機能しますが、実際の(UNIXベースの)デバイスでは機能しないためです。