Canvas + extra Textviews etc.

R

R3L

Neues Mitglied
0
Hallo zusammen,

kurz und knackig:
Zeichnen mit Canvas klappt. Mit Textviews, Buttons etc. arbeiten klappt.

Wenn ich aber ganz oben nen Button möchte und darunter erst die Fläche zum Zeichnen ... wie kann man das kombinieren? Ich tippe mal darauf, die Zeichenfläche vorher via XML zu definieren und dann nur noch zuzuweisen, aber welche(s?) View ist dafür zuständig?
In den bisher gefundenen Tutorials gab es entweder das eine oder das andere.
Für Anregungen bin ich dankbar.

Beste Grüße und danke,
R.
 
Tja ich hab das so geregelt (dank der Hilfe des Forums):

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
 <FrameLayout
  android:orientation="horizontal"
  android:padding="5dip" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" >

<TextView>
<Button>
...
</FrameLayout>


<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
</LinearLayout>



</LinearLayout>
Dabei ist das erste LinearLayout dazu da, dass die im FrameLayout verbauten Buttons und Texte oberhab sind.
Das 2te LinearLayout bekommt eine ID!!!

Jetzt zur Activity:
Code:
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xxx);
        feld = new Feld(this);
        LinearLayout layout = (LinearLayout) findViewById(R.id.LinearLayout01);
        layout.addView(feld);
        
    }
was wichtig an feld ist:
Code:
public class Feld extends View {
   public Feld(Context context){
     
   }
}
es muss von View erben.

so hab ich es gemacht und funktioniert recht gut. Vielleicht hat jemand was besseres...
 
moin,

hab das auch so wie mein Vorredner gemacht. Durch die Methode kannst du die genau Position und Größe des Views über das Layout festlegen und mehrere Views überlagern z.B. Background -> Layer1 -> Layer2 etc. dann muss das Gerät den Background zum Beispiel nur einmal beim starten zeichnen

mfg
 
Ah sehr gut, vielen Dank.
Hat prima geklappt.

Meine Klasse erbt allerdings von SurfaceView, aber läuft ja trotzdem :)
 
SurfaceView erweitert ja die Klasse View, deshalb ist das vollkommen in Ordnung.
 
Hallo !

Ich bin neu hier und wollte genau das obere Beispiel über Netbeans 7.2.1 auf meinem Galaxy S2 umsetzen aber das funktioniert bei mir nicht.
Netbeans stört sich an der Klassendeklaration im dritten Teil.
Folgende Fehlermeldung wird ausgespuckt:
error: no suitable constructor found for View()
{
constructor View.View(Context,AttributeSet,int) is not applicable
(actual and formal argument lists differ in length)
constructor View.View(Context,AttributeSet) is not applicable
(actual and formal argument lists differ in length)
constructor View.View(Context) is not applicable
(actual and formal argument lists differ in length)
1 error

Kann mir da jemand weiterhelfen ?

Gruß Uli
 

Ähnliche Themen

A
  • Arif12
Antworten
7
Aufrufe
1.409
Jaiel
Jaiel
H
Antworten
3
Aufrufe
1.176
swa00
swa00
Zurück
Oben Unten