Zmiana obrazka na 2 sekundy i przywrócenie poprzedniego obrazka - jakiej funkcji użyć?

0

Java, android, eclipse.

Bawię się GridViewem i OnItemClickListener nałożyłem na niego.

public void onItemClick(AdapterView<?> parent, View view, int position, long id)

Wykonuje się w nim kod, który zmienia mi obrazek w ImageView na inny, chcę jednak dopisać zaraz po zmianie obrazka, jakąś funkcję Sleep lub coś innego, co nie zamrozi mi programu na czas trwania i po tym określonym czasie np. 2 sekundach wykona się kod przywracający mi poprzedni obrazek.

Prośba do was - czego użyć w tym celu najlepiej? Jakiś Sleep w nowym wątku musiałbym stworzyć by nie freezował programu i pozwalał klikać na inne elementy? Czy może są jakieś inne funkcje, które też spełnią swoje zadanie?

w pseudokodzie to mogłoby wyglądać tak:

UstawObrazek(obrazek_2);
Sleep(2000); //lub coś, właśnie o to pytam, co użyć najlepiej by nie freezowało aplikacji
UstawObrazek(obrazek_1);

Z góry dziękuję za pomoc.

dodanie znacznika <code class="java"> - furious programming

0

Nie wiem czy to pomoże, ale:
http://www.jug.poznan.pl/wp-content/uploads/2011/04/android_watki.pdf <--- 12 strona
http://stackoverflow.com/questions/4597690/android-timer-how
http://stackoverflow.com/questions/13100196/making-a-interval-timer-in-java-android

Ewenetualnei skorzystaj z jakiegoś silnika do gier na androida one zazwyczaj mają wbudowane funkcje do tego

0

@michu45 autorowi raczej nie o to chodzi. Tutaj chodzi o pokazywanie placeholdera na czas ładowania obrazka w liście i płynne przejście do załadowanego obrazka.
http://square.github.io/picasso/
Pobierasz tą bibliotkę i ładujesz obrazek tak:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").placeholder(R.drawable.obrazek).into(imageView);  

R.drawable.obrazek pojawi się na chwilę i później płynnie pokaże się załadowany obrazek.

Ewentualnie animacje fadeIn i fadeOut. Dla animacji ustawić AnimationListener
http://stackoverflow.com/questions/17387654/animation-in-android-for-image-transition

0

chodziło mi tylko o zwykłą pseudoanimację wciskania przycisku.

ImageView na starcie ma wczytany obrazek przycisku, nazwijmy tę grafikę Przycisk_normal
i chodziło mi o to, by po kliknięciu w ImageView, grafika w nim (czyli Przycisk_normal) została podmieniona na grafikę Przycisk_push, czyli krótko mówiąc miałby wykonać się kod:

UstawImageView(Przycisk_push);
// tutaj jakiś kod czekający około 2 sekundy
UstawImageView(Przycisk_normal);

I o to mi chodziło. Więc doradzacie w jaki sposób (najłatwiejszy) to zrobić?

Ps. jak gridviewa jeszcze nie używałem to OnTouchListener mogłem użyć i zrobić tam wykrycie MotionEvent, czy jest _UP, czy _DOWN, czyli przy DOWN kazałem ładować przycisk wduszony, a przy UP normalny, ale teraz w GridView się bawię i tam chyba niezbyt idzie użyć OnTouch, bo są 3 funkcje do GridViewa, OnItemClick, OnItemLongClick i chyba OnItemSelectClick lub coś podobnego, brakuje tam OnItemTouch dlatego powiedziałem sobie "dobra, skoro nie ma OnItemTouch dla GridViewa to zamiast kombinować w google, po prostu wstawię sleepa pomiędzy dwiema linijkami kodu od zmiany grafiki w ImageView"

I wtedy właśnie założyłem topic by dowidzieć się czego użyć, już nie pytałem, czy da radę zrobić listener na OnTouch dla gridviewa (musiałby zawierać nr pozycji itemu klikniętego w GridView [a akurat tę rzecz ma OnItemClick, a OnItemTouch funkcja w ogóle nie istnieje]).

dodanie znaczników <code class="java"> i `` - furious programming

0

Już mam rozwiązanie! Hindus z Indii powiedział mi bym w folderze drawable stworzył nowy plik XML typu SELECTOR i wtedy ImageViewowi wystarczyło przycpisać ten plik XML w Background i wszystko śmiga jak ta lala.

android:background="@drawable/nasz_plik_xml"

1 użytkowników online, w tym zalogowanych: 0, gości: 1