Wird das jetzt mode mit dem Screenshots, na ja, das Forum kann kein Syntax Highlighting, auch die Beta Version, Steinzeit!
Du hast recht wir sollten uns alle mehr und in jedem post drüber Aufregen
Ist ungefähr so als ob man Bilder in Word einfügt und dann verschickt, jeder kennt sowas aus Büros. Kopf -> Tisch!
Wir haben ja hier neue Mods und die Hoffnung stirbt zuletzt, wenn etwas euer auftrag wäre dann sicher das mal nach oben zu delegieren z.b an den Sven.
Back on Topic:
Ein Handler ist nichts anders als eine Art Warteschlange, der UI Thread guckt drauf was zu tun ist. Einer der Jobs wäre genau dein Runnable.
Z.b einen ist dein super.run() überflüssig da es eine Anyonyme Klasse ist, ausserdem ist eine neuer Thread wirklich zuviel hier, da der Handler nur Runnables will, Thread implementiert das "zufällig" mit
Thread implements Runnable. Es reicht aber ein einfaches
Runnable um Aufgaben an den UI Thread zu senden. Z.b wäre sowas Zeitversetzt möglich indem man handler.postDelayed(deinRunnable,zeitversatz) nutzt.
Damit könnte man z.b zuerst den pressed und direkt danach den unpressed zustand in den Handler einstellen:
1handler.post(pressedZustand);
2handler.postDelayed(unpressedZustand,2000);
Aber diese Lösung ist wirklich dirty, und sollte man an sich nicht so umsetzen, zum einen ist hier zuviel Logik und Runnables zum anderen geht es einfacher ohne sich über Handler gedanken machen zu müssen. Jeder Button jeder ImageView etc kann selektoren benutzen, diese können den hintergrund oder vordergrund markieren. Dafür muss man ihn einfach auf das entsprechende View setzen
1android:background="@drawable/dein_selector"
Der selektor selbst sieht da ungefähr so aus, hab ihn aus einem Projekt hier mal ausgeliehen:
1<?xml version="1.0" encoding="utf-8"?>
2<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="@integer/enterFadeDuration" android:exitFadeDuration="@integer/exitFadeDuration">
3
4 <item android:drawable="@drawable/list_entry_background_focused" android:state_activated="true"/> <!-- Activiated for Tablet Two Pane Layout -->
5 <!-- Normal Selection States -->
6 <item android:drawable="@drawable/list_entry_background_pressed" android:state_pressed="true"/> <!-- pressed -->
7 <item android:drawable="@drawable/list_entry_background_focused" android:state_focused="true"/> <!-- focused -->
8 <item android:drawable="@android:color/transparent"/> <!-- default -->
9
10</selector>
Hier werden die Farben/Bilder für jeden einzelnen Zustand der Pressed zustände definiert, z.b man erkennt das Ich hier überalle Drawable verwende, im prinzip kann man hier auch einfach Farben einsetzen und der Hindergrund wird gefüllt.
Wichtig dabei ist die reihenfolge von oben nach Unten! da das System sonst falsch arbeitet.
Um jetzt noch die länge der Zustände besser beeinflussen zu können musst du
android:enterFadeDuration="@integer/enterFadeDuration"entsprechend anpassen, hier benutze Ich vom vordefinierte werte. Du kannst aber auch hier z.b 1000 Einfügen damit das einblenden bzw ausblenden 1000ms dauert, was dann 2000ms insgesamt entspricht.
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV