2012-05-28 12 views
6

Ich habe eine Android App, wo der Benutzer einige Objekte über ein Foto malt, verschiebt und neu gestaltet. Auf dieser Seite besteht mein Bildschirmlayout aus dem geladenen Foto und darunter (im Hochformat) einigen Tasten. Mein Blick sieht genauso aus, wie ich es mit dem unten xml wollen:Android - Legen Sie eine Ansicht fest, die auf Objekten mit Leinwand gezeichnet wird

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:id="@+id/linear" > 

    <LinearLayout 
     android:id="@+id/buttons" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:gravity="center" 
     android:layout_alignParentBottom="true"> 

      <ImageView 
       android:id="@+id/draw" 
       android:layout_width="80dp" 
       android:layout_height="50dp" 
       android:clickable="true" 
       android:src="@drawable/draw"/> 

      <ImageView 
       android:id="@+id/delete" 
       android:layout_width="80dp" 
       android:layout_height="50dp" 
       android:clickable="true" 
       android:layout_toRightOf="@+id/erase" 
       android:src="@drawable/delete"/> 

      <ImageView 
       android:id="@+id/done" 
       android:layout_width="80dp" 
       android:clickable="true" 
       android:layout_height="50dp" 
       android:layout_toRightOf="@+id/delete"   
       android:src="@drawable/done"/>   

     </LinearLayout>  



    <ImageView 
     android:id="@+id/photo" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_above="@id/buttons"/> 


</RelativeLayout> 

Das Problem ist, dass ich die Knöpfe wollen oben auf die lackierten Gegenstände immer sein. Wenn der Benutzer nun eine Linie malt und sie dann so bewegt, dass eine Kante tiefer als das Bild wird, dann befindet sich diese Linie über den Schaltflächen. Zu diesem Zeitpunkt ist es unberührbar, da die Zeichenfläche auf die Bitmap gesetzt ist, die mein Bild enthält, aber es wird sichtbar sein. Ich möchte, dass es in der Art verschwindet, wie es verschwindet, wenn ein Teil der Zeile den Bildschirm verlässt.

Wie kann ich das umsetzen? Gibt es ein Attribut, das sicherstellen kann, dass sich diese Schaltflächen immer über den gemalten Objekten befinden? Vielen Dank im Voraus!

Antwort

8

Wenn Sie @OverrideonDraw oder onLayout Methode haben, versuchen Sie die

<LinearLayout 
    android:id="@+id/buttons"> 

in der Front zu bringen, indem v.bringToFront() mit dem v Ihre Linearlayout sein wird.