Beiträge von James 007

    :D Die einfachsten Antworten sind immer die Besten!


    Habs ausprobiert und zwar mit



    ... und Kogoro hatte recht. Beim Verlassen der Screengrenzen wird stets ein "up" ausgelöst - beim physischen Device, nicht beim Virtuellen! Jetzt stellt sich aber die Frage, unter welchen Bedingungen wird nun aber ein "outseide" (Idee von Lucas de Vil) ausgelöst?? Ich hab's nach längerem Probieren nie geschafft, auch nur ein einziges "outside" zu verursachen ...

    Hallo,


    eine ganz grundsätzliche Frage zum OnTouch:


    Im Regelfall tippt ich mit dem Finger auf den Screen, fährt damit ein bischen drauf rum und hebt den Finger wieder hoch - und das ganze möcht ich so behandeln:



    Kann es aber nun auch passieren, dass bei einer Screen-Berührung zwar das DOWN und MOVE nicht aber das das UP-Ereignis ausgelöst wird - z. B. ich setze den Finger in Mitte Bildschirm (=DOWN) und fahre (=MOVE) aus dem bildschirm heraus ohne je abzuheben - oder wird grundsätzlich beim Verlassen der Screen-Grenzen das UP-Ereignis automatisch ausgelöst????


    Falls es tatsächlich durch irgendwelche irrwitzigen Verrenkungen des Nutzers passieren kann, dass das UP-Ereignis nicht ausgelöst wird, welche sind das und wie kann man dies sinnvoll programmintern verhindern? Oder anders gefragt, wie kann ich eine Aktion abschließen, die zwar beim DOWN-Ereignis starten soll und erst beim UP-Ereignis beendet werden soll?


    Oder mach ich mir über nix Soregen und sowas gibt's gar nicht?????
    :-/

    Hm, ich hab mich nicht klar ausgedrückt.


    Also ich möchte in einer App verschiedene Bilder irgendwie kreuz und quer übereinanderlegen, auch mit verschiedenen tranparenzstufen, verdreht, u.s.w. - das ich kein Problem. Aber dann möchte ich bei Zeiten einen Screenshot von diesem Konglomerat machen. Dieser Bildschirmschnappschuss soll nun ein Bitmap sein, welches ich z. B. abspeichern oder zu Laufzeit weiterbearben kann.


    Also ich möcht schon meine eigene App fotografieren, aber dort alles was drauf ist.

    Hallo,
    ich suche eine Möglichkeit, den Bildschirm, also genau, das Bild, das auf dem Display dargestellt ist, zur Laufzeit berabeiten zu können. Also so eine Art Bildschirmschnappschuss genau der dargestellten Pixeldarstellung mit der Möglichkeit, diesen zur Laufzeit des Programmes wie z. B. in einem View als Canvas manipulieren zu können - geht soetwas ganz einfach? Oder anders gefragt: Hat der Display eine Canvas und wie spreche ich sie an? Ich habe bei meiner Recherche nichts gefunden, weiss aber dass es da noch ganz viele verborgene Schätze auf Java gibt?!

    Hallo killphil75, danke für Infos, habe es mit Deinem System immer noch nicht hingekrigt, aber so funktioniert es nun doch:
    Ich habe in der Activiy-Klasse eine Listener-Klasse geschrieben und die zugehörigem Listener-Objekte beim View-Element registriert. In der MyView-Klasse habe ich alle onTouch-Methoden rausgeschmissen. Wen's interessiert, hier der Code



    Auch wenn es nun klappt, ich würde aber trotzdem gerne wissen was bei meinen vorigen Versuchen falsch war. Ich glaub, der Fehler lag daran, dass ich die OnTouch-Objekte (aus der MyView-Klasse) in der onCreate bei dem myView hätte registrieren müssen, hab aber nicht rausgefunden wie das ginge, z.B. myView.onTouchListener(this) war es gar nicht erlaubt. Und warum funtionierte trotzdem immer der ACTION_DOWN-Teil?

    Vielen Dank für die ausführlichen Antworten. Mir ist vieles klarer geworden
    .. aber noch nicht alles :P


    zu 1)
    das mit den "ich kümmere mich in Zukunft nullundnix um eine gescheite
    Speicherfreigabe" find ich gar nicht übel; auch wenn es stark auf die
    Performance drückt, werden hier doch automatisch viele Fehlerquellen des
    Programmierers verhindert.


    zu 2)
    Die Idee mit dem FrameLayout war wohl nicht die Glücklichste. Mit einem
    eigenen Controll schaut's schon viel besser aus. Übrigens möcht ich zum Start eine Art Schiebepuzzle machen; ich glaub, hier streife ich gleich einige sehr interessante Themen... Was mir nicht so einleuchtet, warum implementierst Du, killphil75, das View.OnTouchListener in die View-Klasse

    Zitat


    public class PuzzleView extends View implements View.OnTouchListener{

    wo doch diese ein OnTouchEvent-Methode zum überschreiben anbietet. Vermutlich geht beides? Ich habs mit beiden Varianten versucht und bin nicht zufrieden. Hier reagiert nur der code vom ACTION_DOWN! Warum das??




    soweit trivial, nun wird's aber für mich noch nicht ganz rein:



    Bei der Variante mit dem Implementieren geht bei gleichem Code gar nix!?!



    Irgentwas kleines fehlt noch!

    Guten Tag!


    Also ich bin neu hier und ebenfalls neu beim Andtroid-basteln.
    Meine Programmierkenntnisse beschränken sich fast ausschließlich auf Delphi - ich bin also kein Programmieranfänger aber ein absoluter Javafrischling! Der Umstieg auf Java und Android ist da schon etwas gewöhnungsbedürtig - ist aber spannend und interessant. Ich habe bereits ein Anfänger Android-Buch und ein Anfänger-Java-Tutorium durchgrackert, programmieren lernt man aber nur beim Tun - und darum bin ich hier.


    Und hier meine ersten 2 Fragen:


    1) Ist es korrekt, dass sämtliche Instanzen, insbesondere auch jene, welche ich mit "new" erzeugt habe, beim Beenden des Programmes vom Programmierer nicht mehr freigegen werden müssen? Also ich muss mich nie zu keinem Zeitpunkt über eine Freigabe des Speichers kümmern?


    2) Mein erste App soll beim Start mehrere Bilder pixelgenau auf dem Bildschirm an verschiedenen Stellen positionieren ( Die Kontrolle über die Bildschirmabmessungen erhalte ich über die display.getWidth() u.s.w.-Methoden - das passt soweit). Diese Bilder sollen mit dem onTouch-Event dann nachträglich verschoben werden können.


    Hierzu lade ich dynamisch in der onCreate-Methode die z.B. 5 Bilder in 5 ImageViews. Diese ImageViews liegen in einem FrameLayout. Nun kann ich aber nicht die Position der ImageViews in der onCreate-Methode festlegen, da die Methode imageView1.layout(l,t,r,b) im onCreate noch nicht funktioniert. Wie setze ich die Views an meine gewollten Koordinaten?


    Ich hoff, ich hab mich halbwegs klar artikuliert?!




    Vielen Dank für gute Anrworten ;)
    Martin