Surface View Problem

T

Tobls22

Neues Mitglied
0
Hallo,
Ich habe vor eine etwas erweiterte Version von Cookie Clicker zu programmieren.
Ich möchte dazu auf einem Layout ein Surface View haben wo ein Bild darauf ist und wenn mann darauf klickt soll eine Zahl darüber um z.B. 1 erhöht werden.
Außerdem brauche ich noch eine Reihe von anderen Knöpfen und Texten auf diesem Layout.

Nun meine Frage:
Wie kann ich die Position der einzelnen Elemente steuern, so dass sie auf allen Geräte an der gleichen Stelle sind?
Und wie kann ich es programmieren dass etwas passiert wenn ich auf ein Bild drücke?( also wie bei einem Knopf?)

Hoffe ihr könnt mir da weiterhelfen!
 
hi ganz einfach gesagt:

auf einer SurfaceView gibts leider keine standard android api Buttons weil die surfaceview keine kinderviews haben aknn aber man KANN es natürlich so wie du in einem layout als kindsview haben und buttons etc darüber schweben lassen quasi nur muss man darauf achten dass buttonklicks auch von den buttons abgefangen werden.

Was ich bei Spielen mache:

Buttons werdene rstmal erstellt und zwar in einem grafikprogramm als png`s die dann als bitmaps ind er app geladen werden.

mein code skaliert dann auch die bitmaps sobald sich die Surfaceview aufgebaut hat
die Position seteuerst du z.B. mit % der Bildschrimdimensionen(um ein button in die mitte des bildschirms zu zeichnen musst du z.B. canvas.drawBitmap(bmp,buttonX-bmp.getWidth()/2f,buttonY-bmp.getHeight/2f,paint); )

touch eingaben verarbeitest du über onTouchEvent (siehe mein letztes Thema hier über Multitouch oder gucke in die doc)
dort fragst du ganz banal ab ob der touch innerhalb bestimmter regionen stattgefunden hat wie z.B. deine button bitmaps oder einfach nur aufs bild oder was auch immer.

und gleich eines vorweg: Nein es gibt keine methode in der klasse Bitmap die z.B. setOnClicklistener() lautet das muss man selbst wie ich grad beschrieben habe lösen...
auf der Surafceview sind solche Sachen alle custom made

Wäre aber gutr möglich das jemand kommt und ein kleines framework schreibt der solch eine funktion erfüllt :)
 
Erst mal danke für die schnelle Hilfe!
Allerdings habe ich nun ein weiteres Problem:
Ich habe auf meinem Hauptlayout und in meiner Haudtactivity einen knopf, der wenn ich ihn drücke einen wert um einen wert x erweitert.
Nun will ich aber wert x von einer anderen activity aus verändern, aber wie mache ich das?


Oder einfacher gesagt:
Wie kann ich eine variable von einer anderen activity aus verändern?
 
Zuletzt bearbeitet:
sharedprefreferences() ist dein freund!!!

so initialisierst du in den jeweiligen Activities deine variable (nennen wir sie mal count)

PHP:
int count=getPreferences(0).getInt("count", 0);

"count" ist der key zu der variable
0(das in den kalmmern bei getInt() nicht die in der ersten klammer diese gibt den modus bzw. die sichtbarkeit für andere apps dieser variable an) ist die default variable falls es noch kein value unter dem namen count vorhanden ist(diese ist frühestens nachdem du es zum ersten mal anlegst vorhanden)


und so kannst du dein count anlegen:

PHP:
	    SharedPreferences.Editor editor = getPreferences( 0).edit();
	    editor.putInt("count", count);
	    editor.commit();

"count" ist der key zu der variable
count ist die value die unter dem key "count" angelegt wird

ps.: siehe die google doku für weitere erklärungen und methoden von sharedprefs wie z.B. putBoolean,putDouble etc. pp.


ansonsten stehen dir auch weitere optionen wie files anlegen oder gar datenbanken zur verfügung ... aber sharedprefs ist die beste lösung für deine zwecke
 
Zuletzt bearbeitet:

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
P
Antworten
0
Aufrufe
555
Pascppal
P
S
Antworten
4
Aufrufe
995
Sempervivum
S
Zurück
Oben Unten