2012-04-15 14 views
0

Ich versuche ein Canvas hinzuzufügen, das ein Bild in mein FrameLayout zeichnet und bearbeitet.Android: Wie fügt man ein Canvas in ein FrameLayout ein?

DrawMap.java erweitert Ansicht und enthält meine onDraw (Canvas c). Zuerst versuche ich diese Methode jedes Mal aufzurufen, wenn onLocationChanged aufgerufen wird. Dies bedeutet, dass der Canvas neu geladen/aktualisiert werden muss. Wie mache ich das?

Hier ist die andere Sache. Ich versuche, Canvas mit dem Bild in mein FrameLayout einzufügen. Die Bitmap wird durch gezeichnet:

c.drawBitmap(resizedBitmap, newX, newY, paint); 

Hier ist die Sachen, die meine app stürzt und sollte die Leinwand in den Rahmen hinzufügen:

DrawMap d = new DrawMap(this); 

FrameLayout frame_map = (FrameLayout) findViewById(R.id.frame_map); 
frame_map.addView(d); 
setContentView(frame_map); 

Ich bin mit zwei FrameLayouts den Bildschirm zu teilen. Die linke (frame_map) sollte eine Karte anzeigen, die rechte (frame_info) zeigt relevante Informationen an (was gut funktioniert).

Was mache ich falsch? Danke.

Antwort

0

Ich glaube, das Problem ist setContentView(frame_map);. Wenn frame_map das untergeordnete Element einer übergeordneten Ansicht ist, müssen Sie die übergeordnete Ansicht von frame_map als Parameter für setContentView(View view); übergeben.

Dies ist nur eine abgeleitete Vermutung von einer Simulation Ihres Codes. Daher benötige ich einige zusätzliche Informationen aus Ihrem Fehlerbericht, um eine endgültige Lösung zu bieten.

Verwandte Themen