TextView durch Background nicht sichtbar

M

Manfred

Fortgeschrittenes Mitglied
Threadstarter
Hallo!

Ich setze ein Hintergrundbild mit
Code:
setBackgroundDrawable(getResources().getDrawable(R.drawable.back));
und habe auf diesem Layout auch TextViews. Diese werden aber überdeckt durch den Background. Setze ich kein Hintergrundbild, sehe ich die Views.

Kann man die irgendwie eine Ebene nach vorne setzen??

Danke!
 
friedger

friedger

Fortgeschrittenes Mitglied
Ich würde den Hintergrund breits im XML definieren, statt dynamisch zu laden. Aber selbst damit hatte ich bisher nie Probleme.
Was für ein Layout ist das denn?
Mehr Code und Details würden helfen :)
Friedger
 
enjoy_android

enjoy_android

Experte
Setzt du das Hintergrundbild direkt auf die TextView oder ein allgemeines Bild für das gesamte Layout?
 
M

Manfred

Fortgeschrittenes Mitglied
Threadstarter
Also ist recht kompliziert!

Aus einer Activity heraus, starte ich ein Intent (=ListActivity) der folgenden Code beinhaltet:

Code:
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.game); 
        
        gf = new Gamefield(this);
        gf.setBackgroundDrawable(getResources().getDrawable(R.drawable.back));
        gf.neueRunde();
        this.addContentView(gf, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Das Gamefield ist ein View
Game layout:
Code:
<AbsoluteLayout android:id="@+id/AbsoluteLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">

<ListView android:id="@+id/android:list" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/TextViewBank" android:layout_y="300px" android:layout_x="200px" android:text="Bank:"></TextView>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/TextViewPunkte" android:layout_x="5px" android:layout_y="300px" android:text="Player:" android:bufferType="normal"></TextView>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="100px" android:layout_y="120px" android:textSize="20px" android:id="@+id/TextViewMessage"></TextView>

</AbsoluteLayout>
Wie ihr seht, "adde" ich einen ContentView hinzu, der nicht im Layout enthalten ist, dieser hat das Hintergrundbild. In der Klasse Gamefield sieht es dann so aus:

Code:
    public Gamefield(Context context)
    {
        super(context);
        this.ctx = context;
               
        bank = (TextView) ((Activity)ctx).findViewById(R.id.TextViewBank);
        punkte = (TextView) ((Activity)ctx).findViewById(R.id.TextViewPunkte);
Ich habe jetzt auch schon versucht am Layout einen View hinzuzufügen und dann dort das bild hinaufzugeben, dass ich die TextViews dann darunter sehe, ging aber auch nicht.
 
Zuletzt bearbeitet:
friedger

friedger

Fortgeschrittenes Mitglied
addContentView wird meistens für Dialog-ähnliche Views verwendet, ist das dein Ziel für GameView.

Warum schreibst du GameView nicht einfach ins XML?
 
M

Manfred

Fortgeschrittenes Mitglied
Threadstarter
friedger schrieb:
addContentView wird meistens für Dialog-ähnliche Views verwendet, ist das dein Ziel für GameView.

Warum schreibst du GameView nicht einfach ins XML?

Weil ich die onDraw Methode benutzen will, wenn ich das alles ins XML schreibe, wie kann ich das dann tun?
 
friedger

friedger

Fortgeschrittenes Mitglied
Du kannst einfach statt z.B. TextView deine eigene Klasse mit qualifiziertem Namen ins XML schreiben.

Siehe zum Beispiel layout/custome_view_1 in ApiDemo

<com.example.android.apis.view.LabelView
android:background="@drawable/red"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:text="Red"/>
 
Oben Unten