Avatar
pavel.seb
Člen
Avatar
pavel.seb:

Zdravím, zkouším laborovat s aplikací pro windows phone 8.1 a chtěl bych na dlaždici střídat obrázky uložené v lokálním úložišti. Níže uvedený kód funguje z části. Z uložených obrázků zobrazuje počet - 1. Tzn. pokud mám v úložišti 4 obrázky, na dlaždici se střídají 3. Kódem si nejsem zcela jist, je to takový "slepenec" informací v internetu. V oficiální dokumentaci jsem nenašel jak udělat TileSquare150x150I­mage a TileWide310x150I­mage se střídajícími obrázky. Ale možná na to jdu ze špatné strany. Za jakékoliv nasměrování či radu budu rád.

private async void RefreshTile() {


            var imageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
            var files = await imageFolder.GetFilesAsync();
            var selectedFiles = files.Where(i => i.Name.EndsWith(".jpg") && !i.Name.Contains("tile") && !i.Name.Contains("prev")).ToList();

            TileUpdateManager.CreateTileUpdaterForApplication().Clear();
            var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Image);
            var tile150Xml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Image);

            if (selectedFiles.Count <= 0) {
                tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text04);
                var tileNotification = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

                var tileImageXmlElement = tile150Xml.GetElementsByTagName("image")[0] as XmlElement;
                tileImageXmlElement.SetAttribute("src", "ms-appx:///Assets/Logo.scale-240.png");
                tileNotification = new TileNotification(tile150Xml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

                return;
            }

            TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);



            for (int i = 0; i < selectedFiles.Count; i++) {
                System.Diagnostics.Debug.WriteLine("Add image to cycling tile: " + selectedFiles[i].Name);
                var tileImageXmlElement = tileXml.GetElementsByTagName("image")[0] as XmlElement;
                tileImageXmlElement.SetAttribute("src", "ms-appdata:///local/" + selectedFiles[i].Name);
                var tileNotification = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

                tileImageXmlElement = tile150Xml.GetElementsByTagName("image")[0] as XmlElement;
                tileImageXmlElement.SetAttribute("src", "ms-appdata:///local/" + selectedFiles[i].Name);
                tileNotification = new TileNotification(tile150Xml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

            }
        }

Zde je výpis debugeru pro čtyři obrázky:
Add image to tile: 1447751823.jpg
Add image to tile: 1447752131.jpg
Add image to tile: 1447752236.jpg
Add image to tile: 1447925745.jpg
Z toho plyne, že obrázky najde všechny ale střídají se jen 3

 
Odpovědět 20.11.2015 9:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.