0
問候。 SDK 1.6.2
從數據庫緩慢加載圖像
我將相機捕獲的位置以及一些其他信息存儲在數據庫中。
我有一個窗口循環通過數據庫,並以小的平鋪縮略圖顯示圖像。
的圖像越,我有較長的這個窗口需要加載(保持空白,直到完成)
這裏是我如何調用圖片:
var imageArray = [];
var images = [];
// open and parse database
var db = Titanium.Database.open('photoDB');
var dbrows = db.execute('select id, date, image, tags from images order by date asc');
while (dbrows.isValidRow()) {
imagesArray.push({
id: dbrows.fieldByName('id'),
image:dbrows.fieldByName('image'), // image is the location of the stored image inside of applicationDataDirectory
tags:dbrows.fieldByName('tags')
});
dbrows.next();
}
dbrows.close();
db.close();
// Load in the images
for (var i = 0; i < imageArray.length; i++){
var pushleft = ((i % 4) * 76); // tile from left
var pushtop = (Math.floor(i/4) * 100); //tile from top
var file = Titanium.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, imageArray[i].image);
if(file.exists()){
images[i] = Ti.UI.createImageView({
image: file.nativePath,
width: 75,
height: 96,
left: pushleft,
top: pushtop,
store_id: imageArray[i].id,
zIndex: 99
});
win.add(images[i]);
}
}
我不知道,如果滯後是由於getFile
或者可能存儲圖像的大小?
我有10個圖像存儲,這個窗口需要13秒加載。如果我不知道要等待,我會認爲它已損壞,並離開了應用程序...
有什麼想法?謝謝!
亞倫,謝謝你的回覆。我正在保存整個圖像,因爲整個圖像將在稍後使用並上傳到服務器。 'iOS' – joseym 2011-04-23 14:56:32
我有同樣的情況,但我保存了兩個版本的圖像。它可能會比Wi-Fi更好地運行,但如果應用程序要通過3G使用,那麼您將有一個糟糕的用戶體驗傳輸巨大的圖像在線路上來回傳輸......恕我直言。 – 2011-04-24 15:17:09
我會給縮略圖創建一個鏡頭,讓你知道它是如何工作的。感謝提示@Aaron Saunders,我會盡快回復。創建單獨的縮略圖圖像的 – joseym 2011-04-25 00:26:57