Pokaż wyniki od 1 do 9 z 9

Wątek: Odświeżanie obrazka po tapnieciu

  1. #1
    Awatar GarryMoveOut

    Dołączył
    Jul 2012
    Posty
    116
    Telefon
    Nokia Lumia 800
    ROM
    7.8
    Piwa (Postawione)
    3
    Piwa (Otrzymane)
    2

    Odświeżanie obrazka po tapnieciu

    Mam zrobione wyświetlanie obrazka. Problem w tym że obrazek ten jest pobierany tylko raz. Przy otwarciu strony (nawet nie do końca, bo po jednokrotnym otwarciu strony już więcej się nie pobiera nawet po wyjściu i ponownym wejściu)

    Kod:
    public Pkam1w()
            {
                InitializeComponent();
                WebClient webClient = new WebClient();
                webClient.OpenReadCompleted += ImageOpenReadCompleted;
                webClient.OpenReadAsync(new Uri("http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515"));
            }
            private void ImageOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
            {
                if (!e.Cancelled && e.Error == null)
                {
                    BitmapImage bmp = new BitmapImage();
                    bmp.SetSource(e.Result);
                    image1.Source = bmp;
                }
            }
            private void Odswiez(object sender, System.Windows.Input.GestureEventArgs e)
            {
                
            }
    Obraz z kamery jest odświeżany co około 30 sek. Jak zrobić żeby po tapnięciu obrazka ładował się on od nowa ?
    DAWAJ mnie to piwooo
    fotoblog

  2. #2
    Awatar Andrew

    Dołączył
    Nov 2011
    Skąd
    Częstochowa
    Wiek
    30
    Posty
    400
    Telefon
    Nokia Lumia 820
    Piwa (Postawione)
    5
    Piwa (Otrzymane)
    21
    po lamersku możesz do metody Odswiez dodać jeszcze raz tą linijkę:
    Kod:
    webClient.OpenReadAsync(new Uri("http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515"));
    tylko obiekt webClient musi być globalny.

    ale lepiej jest ten fragment
    Kod:
    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += ImageOpenReadCompleted;
    webClient.OpenReadAsync(new Uri("http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515"));
    wyciągnąć do osobnej metody którą raz odpalasz w konstruktorze a drugi raz w metodzie Odswiez. Ewentualnie przenosisz wszystko do Odswiez i uruchamiasz ją w konstruktorze z parametrami nullowymi - skoro i tak z nich nie skorzystasz.
    GOOgle With aNdrOID SUX

  3. Piwa GarryMoveOut postawil(li) piwo za ten post
  4. #3
    Awatar GarryMoveOut

    Dołączył
    Jul 2012
    Posty
    116
    Telefon
    Nokia Lumia 800
    ROM
    7.8
    Piwa (Postawione)
    3
    Piwa (Otrzymane)
    2
    Wsadziłem fragment do funkcji ale obraz się nie odświerza
    Kod:
           //konstruktor
                pobranie_obrazu();
     ...
            }
            public void pobranie_obrazu()
            {
                WebClient webClient = new WebClient();
                webClient.OpenReadCompleted += ImageOpenReadCompleted;
                webClient.OpenReadAsync(new Uri("http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515"));
            }
            private void ImageOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
            {
                if (!e.Cancelled && e.Error == null)
                {
                    BitmapImage bmp = new BitmapImage();
                    bmp.SetSource(e.Result);
                    image1.Source = bmp;
                }
            }
            public void Odswiez(object sender, EventArgs e)
            {
    
                pobranie_obrazu();
    
            }
    DAWAJ mnie to piwooo
    fotoblog

  5. #4
    Awatar Andrew

    Dołączył
    Nov 2011
    Skąd
    Częstochowa
    Wiek
    30
    Posty
    400
    Telefon
    Nokia Lumia 820
    Piwa (Postawione)
    5
    Piwa (Otrzymane)
    21
    a metodę Odswiez gdzie wywołujesz? bo myślałem że ona jest wywoływana po tapnięciu na obrazek.
    GOOgle With aNdrOID SUX

  6. #5
    Awatar GarryMoveOut

    Dołączył
    Jul 2012
    Posty
    116
    Telefon
    Nokia Lumia 800
    ROM
    7.8
    Piwa (Postawione)
    3
    Piwa (Otrzymane)
    2
    Zrezygnowałem z tąpnięcia i zmieniłem na przycisk w application bar. Sprawdzałem debugerem i po wciśnięciu odpala funkcję ale nie widać zmian.
    DAWAJ mnie to piwooo
    fotoblog

  7. #6
    Awatar Andrew

    Dołączył
    Nov 2011
    Skąd
    Częstochowa
    Wiek
    30
    Posty
    400
    Telefon
    Nokia Lumia 820
    Piwa (Postawione)
    5
    Piwa (Otrzymane)
    21
    na szybko to poprawiłem http://1drv.ms/1iIs3zo

    ogólnie chodzi o to że na wp ta komunikacja jest zwalona i serwer zwykle wysyła to samo ze swojego cache'a - dlatego pomimo tego że coś pobrało to nie widać zmian. lamerskie rozwiązanie to do adresu doklejenie parametru z nowym guidem... nie mam lepszego rozwiązania na teraz
    GOOgle With aNdrOID SUX

  8. Piwa GarryMoveOut postawil(li) piwo za ten post
  9. #7
    Awatar GarryMoveOut

    Dołączył
    Jul 2012
    Posty
    116
    Telefon
    Nokia Lumia 800
    ROM
    7.8
    Piwa (Postawione)
    3
    Piwa (Otrzymane)
    2
    Dzięki, zanim napisałeś próbowałem zwalniać pamięć cache dla webclienta i nic nie to nie dawało, próbowałem również pobierać synchronicznie zamiast asynchronicznie co też skończyło się fiaskiem.
    Zajrzałem do kodu, ale to kod utworzony w nowszym visualu i chyba jest stworzony pod WP 8 (co jest dla mnie nowością). Postaram się go rozszyfrować. Jako że mam win7 to przy pisaniu aplikacji na telefony korzystam z VisualStudio 2010 z sdk do WP7. A w Visual 2013 nie mam sdk WP8.

    EDIT:
    Problem mam z dwoma bibliotekami using System.Net.Http using System.Threading.Tasks. Doinstalowałem Microsoft.Bcl. Jednak z tego co wyczytałem Visual 2010 ma z tym problemy.
    Ostatnio edytowane przez GarryMoveOut ; 03-05-2014 o 12:02
    DAWAJ mnie to piwooo
    fotoblog

  10. #8
    Awatar Andrew

    Dołączył
    Nov 2011
    Skąd
    Częstochowa
    Wiek
    30
    Posty
    400
    Telefon
    Nokia Lumia 820
    Piwa (Postawione)
    5
    Piwa (Otrzymane)
    21
    Racja - to jest projekt z VS2013 dla WP8 Zawsze korzystam z najnowszych narzędzi.

    Po prostu dodaj takie coś do wywołania:
    Kod:
    "http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515&"+ Guid.NewGuid()
    czyli:
    Kod:
     webClient.OpenReadAsync(new Uri("http://przeprawa.swi.pl/cgi-bin/kam.cgi?6&1399042906515&"+ Guid.NewGuid()));
    Ostatnio edytowane przez Andrew ; 03-05-2014 o 12:41 Powód: zbędne nawiasy
    GOOgle With aNdrOID SUX

  11. Piwa GarryMoveOut postawil(li) piwo za ten post
  12. #9
    Awatar GarryMoveOut

    Dołączył
    Jul 2012
    Posty
    116
    Telefon
    Nokia Lumia 800
    ROM
    7.8
    Piwa (Postawione)
    3
    Piwa (Otrzymane)
    2
    Teraz działa . Dzięki wielkie sam bym do tego nie doszedł. Próbowałem doinstalować Async ACT do VS2010 ale dalej coś nie tak było. Teraz postaram się to obudować jakoś w progressinducator.

    Też lubię korzystać z najnowszych narzędzi. Z VS2013 korzystam przy pisaniu aplikacji komputerowych. Ale że mam Win7 i WP7 to jestem zmuszony korzystać z VS2010. Bo mój stary laptop nie lubi się za bardzo z Win8
    DAWAJ mnie to piwooo
    fotoblog

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Windows Phone 8 a odświeżanie kafelków co 30 minut.
    Przez as007 w dziale Ogólnie o Windows Phone
    Odpowiedzi: 7
    Ostatni post / autor: 07-06-2013, 23:07

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •