# 2d Grafiken auf dem Handy zeichen



## UmberHons (15. März 2008)

Hallo,

ich bin Anfänger, was das Programmieren von Applikationen fürs Handy betrifft. Im Moment habe ich das Problem, dass ich eine Anleitung, für das Zeichnen von 2D Grafiken auf dem Handy, suche. 
Dabei möchte ich einfach einige Kreise und Linien Zeichen, die ich bei Bedarf farblich ändern möchte. Dazu will ich kein Image benutzen. Klar ist mir, dass ich ein entsprechendes Bild zeichnen und dann als png in der Applikation laden könnte. 
Im Prinzip will ich genau so vorgehen, wie man das bei Anwendungen auf dem Rechner auch tut. Also das Graphics Objekt nehmen und entsprechen mit leben füllen (paint-Methode überschreiben). Leider ist mir hier nicht ganz klar von welcher Klasse ich mir das Graphics Objekt geben lassen muss. Ich habe ein Midlet und eine Form. Muss ich diesen nun ein Canvas oder etwas Vergleichbares übergeben oder wie geht man hier vor? Mit einem kleinen Beispiel, wie man vorgehen muss, wäre mir auch schon sehr geholfen. 

Danke schon mal im Voraus.


Gruß de UmberHons


----------



## christianullenboom (22. März 2008)

Hallo,

eine Gui-Klasse leitet von Canvas ab und überschreibst  paint(Graphics g). Die Komponente setzt du dann wie jede andere auf den Schirm. Alternativ für anspruchsvollere Sachen: Scalable 2D Vector Graphics (JSR-226) 

Grüße

 Christian


----------



## Minerva86 (1. April 2008)

Huhu,
Ich bin zwar auch noch nicht lang dabei, aber vielleicht kann ich dir trotzdem weiterhelfen. 
Da du ja schon Form verwendest und nur zeichnen möchtest, würde sich z.B. die abstracte Klasse CustomItem anbieten.
Sie ermöglicht es dir die paint() Methode zu überschreiben.
Hier ein kleines Beispiel:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

class testItem extends CustomItem
{
   public testItem(String title) 
    {
        super(title);
    }     
    protected void paint(Graphics g, int w, int h)
    {
        g.setColor(0,0,0);
        g.drawLine(10,0,30,0);
        g.drawLine(30,0,40,20);
        g.drawLine(40,20,30,40);
        g.drawLine(30,40,10,40);
        g.drawLine(10,40,0,20);
        g.drawLine(0,20,10,0);   
    }
    protected int getMinContentHeight()
    {
        return 200;
    }
    protected int getMinContentWidth()
    {
        return 200;
    }   
    protected int getPrefContentHeight(int w)
    {
        return 200;
    }  
    protected int getPrefContentWidth(int h)
    {
        return 200;
    }  
}

Ich hoffe dir hilft das Beispiel ansonsten kannste ja nochmal schnreiben.

Liebe Grüße

Minerva86


----------

