"GraphicsViews" unter Android APIs

  • Antworten:7
Petro Haye
  • Forum-Beiträge: 11

29.06.2012, 18:54:41 via Website

Hi,
ich habe grade damit angefangen auf Android zu programmieren, bis jetzt habe ich hauptsächlich mit Qt in C++ programmiert. Von daher finde ich mich noch nicht wirklich zurecht. Daher meine Frage: Gibt es auf Android etwas mit QGraphicsView,-Scene,-Item, etc. (QT) vergleichbares, sprich eine Art View der man einfach Graphikelemente (bzw.GraphicsItems) zuordnen kann. Oder wie macht man das sonst?

Antworten
Michele
  • Forum-Beiträge: 1.525

30.06.2012, 03:56:50 via Website

Hallo.

Hast du denn erstmal dich mit Java beschäftigt? Was du können solltest für Android.

Ich denke mal du meinst sowas wie SurfaceView in Android?
http://developer.android.com/reference/android/view/SurfaceView.html


LG

— geändert am 30.06.2012, 03:58:11

Antworten
Petro Haye
  • Forum-Beiträge: 11

02.07.2012, 16:16:55 via Website

Ich hab mir mal ein Java Tutorial angeguckt, an sich ist Java C++ sehr ähnlich, nur ein bisschen vereinfacht. An die "Programmierweise" muss ich mich aber erst noch etwas gewöhnen.

Zur SurfaceView . Damit ich das grundsätzlich erstmal verstehe: Wenn man irgendwas auf die SurfaceView zeichnen will, muss man das in einem Thread alle x Millisekunden neu zeichnen.?

Achja noch ne andere Frage am Rand:
Zeichnet man immer mit Canvas? Egal ob einfacher Kreis oder PNG/...-Ressource?

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

02.07.2012, 20:05:18 via Website

Achja noch ne andere Frage am Rand:
Zeichnet man immer mit Canvas? Egal ob einfacher Kreis oder PNG/...-Ressource?

Wenn du eine statische Grafik anzeigen möchtest, dann tuts auch ein ImageView (zum Beispiel).
Wenn du konkreter sagen würdest, was du machen möchtest, dann könnte man dir sicher besser helfen ;)

Antworten
Petro Haye
  • Forum-Beiträge: 11

02.07.2012, 23:04:19 via Website

and dev
Achja noch ne andere Frage am Rand:
Zeichnet man immer mit Canvas? Egal ob einfacher Kreis oder PNG/...-Ressource?

Wenn du eine statische Grafik anzeigen möchtest, dann tuts auch ein ImageView (zum Beispiel).
Wenn du konkreter sagen würdest, was du machen möchtest, dann könnte man dir sicher besser helfen ;)

Image View ist schon "sehr statisch"; eher zu "Struktur/Layout" zwecken sinnvoll.
Ich denke da eher an sowas :
Man hat auf dem Screen ein Rechteck in dem man Kreise, Linien, Ressourcen oder ähnliches zeichnen kann.

In Qt wäre das einfach mit einem QPainter zu realisieren,mit dem dann in der paintEvent-Methode des "Fensters" auf den Screen zeichnen könnte. QGraphicsView ist, denke ich, einfach eine "höhere" Klasse, bei der einem das Zeichnen weitestgehend abgenommen wird. In Android müsste man das also via SurfaceView noch selbst implementieren.

Wie sieht nun das Pendant auf Android dazu aus? Sind das die Canvas?

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.07.2012, 00:22:25 via Website

Ich würde hier zu einem "ja" tendieren, aber es gibt sicher Mitleser, die sich mit "malen" besser auskennen als ich ;)

Vermutlich gibt es Libs, die das "malen" in gleicher Weise vereinfachen, wie es an scheinend bei der QT-Klasse der Fall ist.

Antworten
Petro Haye
  • Forum-Beiträge: 11

03.07.2012, 13:33:24 via Website

Wie ich nun herausgefunden habe gibt es ein "PaintEvent-Gegenstück" zwar nicht in Activity, aber in View mit der onDraw()-Methode, die man ebenfalls überschreiben kann. Canvas scheint dem QPainter wohl sehr zu ähneln.
Um nochmal auf die SurfaceView zurück zu kommen: Die ist doch rein Thread-basiert oder? Halt perfekt um den Render-Thread eines Games zu übernehmen,

Antworten
Michele
  • Forum-Beiträge: 1.525

03.07.2012, 14:48:38 via Website

Leider habe ich noch nicht so viel ahnung von SurfaceView usw.

Zurzeit habe ich bis jetzt das geschafft damit:

http://imageshack.us/photo/my-images/685/screenshot2012070314453.png/

Meine Welt. Mein D-Pad und meine Figure :D. Bewegen geht auch aber bin ich noch am basteln.

Dafür kenne ich SurfaceView erstmal.
Wenn einer noch mehr weiß lerne ich auch gerne dazu.


LG

Antworten