joa dacht ich mir schon. Hab auch die Erfahrung gemacht, dass das nicht richtig funktioniert. Hast dus schon mal mit nem anderen Layout probiert? Also LinearLayout oder evtl. selbst mit nem AbsoluteLayout?
Beiträge von Thrakbad
-
-
Elemente haben in der Regel ein minHeight und minWidth Attribut, versuchs mal damit.
-
Thx, bist ja doch ganz schön sozial für en Kellerkind
hehe, offensichtlichalso in der API gibts die Funktionen getPressure() und getSize() bei nem MotionEvent (je fester der Druck, desto größer die Oberfläche vom Finger, die anliegt). Allerdings weiß ich nicht, ob alle Telefone das unterstützen und wie fein das abgestuft ist.
-
Tschuldigung, konnte mir das nicht verkneifen, das is ne blöde Meme (bin wohl nen Kellerkind
)
In dem Fall musst du für den Zeitraum zwischen dem EVENT_DOWN und EVENT_UP deine Action durchführen. Am besten definierst du dir ne Art Status Variable, die angibt, was du in deiner Hauptschleife tun musst. Das wäre am besten nen enum (oder nen int) mit den Stati:
- nix tun
- nach links scrollen
- nach rechts scrollen
- hoch scrollen
- runter scrollenOhne Meme sähe das wohl so aus:
OnTouch abfangen
- falls EVENT_DOWN: Koordinaten checken, Variable für entsprechenden State setzen (moveUp, moveDown, moveLeft, moveRight...was immer das Teil macht)
- falls EVENT_UP: aktuellen State aufheben
- falls EVENT_MOVE: Koordinaten neu checken, evtl. State aufheben oder ändernIn der Hauptschleife:
- State abfragen und entsprechend das Spiel ändern -
Naja...
1) OnTouch überschreiben für deinen View
2) Koordinaten abfragen,
3) ?????
4) PROFIT!! -
Ich rate mal drauf los
Die Meldung kommt automatisch, wenn dein UI-Thread länger als 5 Sekunden (keine Garantie) blockiert ist. Das soll verhindern, dass die User Experience leidet. Wenn du den Code in nem eigenen Thread ausführst (Stichwort AsyncTask) müsste es eigentlich klappen.
Sonstige Anmerkung: es ist wahrscheinlich besser nicht nach dem Inhalt der Exception (enthält "timed out") zu unterschieden, sondern nach dem tatsächlichen Typ der Exeption (denke mal IOException). Man kann ja mehrere catch-Blöcke machen. -
ja, hängt ja davon ab, was man machen mag...ich les den Text aus der Datei und schreib ihn in den WebView als String: da seh ich kein Problem. Man kann natürlich nicht einfach dem Webview sagen, dass er assets/index.html lesen soll und gut is, man muss es manuell laden und die Links manuell auflösen.
-
probiers mal so:NumberFormat fmt = NumberFormat.getInstance();
Number number = fmt.parse(<string>);
double dValue = number.doubleValue(); -
sowas würd ich in den assets Ordner packen, da kannste dann normal aus der App drauf zugreifen
-
Ja, scheinbar is das Widget mit R.id.spinnerData im Layout nen Spinner und kein NoDefaultSpinner, daher kann ers nicht auf die Klasse casten. Du musst den Spinner schon auch als NoDefaultSpinner anlegen, am besten ausm Code raus in dem Fall.
-
Was kommt denn im DDMS für ne Exception?
-
Also ohne die Fehlermeldung zu kriegen kann ich da leider nicht helfen. Wenn ich jetz raten müsste, dann stimmt die id nicht, weil das is das einzige an der Zeile, was ohne Kontext falsch sein könnte.
-
Hab jetz nicht drüber geschaut, aber prinzipiell kopierst du die Klasse in dein eigenes Projekt und dann benutzt du überall, wo du grade Spinner benutzt, den NoDefaultSpinner. ziemlich einfach eigentlich.
-
Klassiker, die App is nicht vierfach isntalliert, du hast einfach vier verschiedene Einstiegspunkte für deine App. Für jede Activity, die im manifest den Launcher Intent hat, wird ein Icon im Launcher angelegt. Also lösch einfach den intent-filter bei den drei anderen activities raus und es passt.
-
Fragen stellen kann man immer, vor Allem wenn man dabei nur ein paar Pointer in die richtige Richtung haben will, und nicht sofort alle auffordert, einem nen fertiges Codebeispiel zu liefern.
1) Also ich würde an deiner Stelle erstmal das Java Buch zu Ende lesen, das ist als Basis unbedingt notwendig. Du brauchst dabei jetz nicht jedes kleine Detail wissen. Z.B. Generics selber schreiben kannst du erstmal getrost weg lassen. Danach kannst du dich mit den Eigenheiten von Android rum ärgern.
2) Bei nem Spiel solltest du dich dann verstärkt mit Threading/Synchronization beschäftigen. Da is Android anders, als standard Java. Deshalb macht das durchaus Sinn, auch das beim normalen Java nicht ganz so detailliert zu lernen. Je nach Komplexität vom Spiel brauchst du durchaus Events, um zwischen GUI- und Logik-Thread zu kommunizieren. Evtl. brauchst du auch OpenGL ES, je nachdem was du so im Kopf hast. Hinweis am Rande: Spiele sind eigentlich immer toll, um Sachen zu lernen. Allerdings wenns dir wirklich um Android geht, dann eher nicht. Das liegt daran, dass Spiele auf Android oft nicht die normalen Android Mechanismen benutzen, weil die etwas langsamer sind, als selbst geschriebene Lösungen. Zum Lernen sind also normale kleine Apps besser geeignet.
-
Hmm, lustig...hängt wahrscheinlich an der Android-Version. Naja, trotzdem gilt diese Regel. Wenn dus dir aber so einfach machen magst, dann kannst du dir auch die id von dem Layout einfach zwischenspeichern. "R.layout.mainv" ist ja nur ne int (oder long?) und kann genau so benutzt werden.
-
also da du pro activity setContentView nur einmal aufrufen kannst (alles andere gibt ne Exception), macht das relativ wenig Sinn. tatsächlich gibt so die Faustregel ein Screen = eine Activity in Android.
-
Ich würd auch empfehlen die 32-bit Version zu nehmen, selbst wenn man aufm 64-bit System is. Mit der 64-Bit Version hatte ich nämlich auch immer nur Probleme.
-
Google mal nach Android Bluetooth Example oder Android Bluetooth Tutorial
-
DDMS anschauen, Log sagt dir, was genau passiert