Bildansicht mit Bild gespeichert in Titan.Dateisystem.applicationDataDirectory zeigt Platzhalter-Bild nicht
Ich bin der Entwicklung mit SDK 1.6.2.
Meine app nutzt die Kamera, um zu erfassen und speichern Sie ein Bild zu Titan.Dateisystem.applicationDataDirectory.
Einem Fingertipp auf die app soll zur Anzeige aller gespeicherten Bilder (details [Pfad] in der Datenbank gespeichert) Fliesen über den Bildschirm.
Speichern des Bildes:
var image = event.media //from camera success
var filename = new Date().getTime() + "-ea.jpg";
bgImage = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, filename);
bgImage.write(image);
Speichern in die Datenbank:
var db = Titanium.Database.open('photoDB');
try{
db.execute('INSERT INTO stored (image) VALUES (?)', bgImage.nativePath);
} catch(e) {
alert(e.message);
}
db.close();
Zeigen die Bilder:
imageArray = [];
images = [];
var db = Titanium.Database.open('photoDB');
var dbrows = db.execute('select id, date, image from stored order by date asc');
while (dbrows.isValidRow()) {
imageArray.push({
image:dbrows.fieldByName('image')
});
dbrows.next();
}
dbrows.close();
//loop thru and display images
for (var i = 0; i < imageArray.length; i++){
var pushleft = (i % 4) * 75; //tile from left
var pushtop = Math.floor(i/4) * 96; //determine how far from top
var file = Titanium.Filesystem.getFile(imageArray[i].image);
images[i] = Ti.UI.createImageView({
image: imageArray[i].image, //path to image at applicationDataDirectory
width: 75,
height: 96,
left: pushleft + 5, //logic for positioning
top: pushtop + 5, //logic for positioning
store_id: imageArray[i].id
});
win.add(images[i]);
}
Leider, während die Fliesen arbeiten, die Bilder zeigen nur den Bild-Platzhalter, nicht das gespeicherte Bild.
Habe ich phonedisk, so dass nach der Erstellung der app für mein Gerät kann ich anzeigen das Anwendungsverzeichnis und die Bilder gespeichert werden.
Was bin ich?
InformationsquelleAutor joseym | 2011-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es herausgefunden, danke an alle für die Hilfe 😉 < Sarkasmus (Es ist nur ein Tag, ich halte keinen Groll)
Hier ist, was falsch war, falls jemand anderes ein ähnliches Problem.
Als ich die Speicherung der Speicherort des Bildes in der Datenbank war ich der Speicherung der vollständige Pfad
bgImage.nativePath
. Allerdings, wenn ich aktualisiert und neu erstellen die app der apps applicationDataDirectory geändert, so dass der gespeicherte Pfad ungültig war.So, jetzt habe ich nur store
var filename
in der Datenbank und wenn ich anzeigen wie diese:Nun, auch bei updates, es zeigt immer auf die richtige applicationDataDirectory
haha, kein problem, Tony! Froh, dass es geholfen hat.
InformationsquelleAutor joseym