2012-05-28 9 views
6

Tengo una aplicación de Android donde el usuario pinta, mueve y cambia la forma de algunos objetos sobre una foto. En esta página, el diseño de mi pantalla consiste en la foto que está cargada y debajo de ella (en la vista vertical) algunos botones. Mi vista se ve exactamente como lo quiero con el XML siguiente:Android - Establecer una vista para estar encima de los elementos dibujados con lienzo

<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> 

El problema es que quiero que los botones para estar siempre en la parte superior de los objetos pintados. Ahora bien, si el usuario pinta una línea y luego la mueve de manera que un borde sea más bajo que la imagen, entonces esta línea estará sobre los botones. Será intocable en ese punto porque el lienzo está configurado en el mapa de bits que tiene mi imagen, pero estará visible. Me gustaría que desaparezca en la forma en que desaparece si parte de la línea se sale de la pantalla.

¿Cómo puedo implementar esto? ¿Hay algún atributo que pueda asegurar que estos botones estén siempre sobre los objetos pintados? ¡Gracias de antemano!

Respuesta

8

Si usted tiene @OverrideonDraw o onLayout método, tratar con lo que el

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

en la parte delantera mediante el uso de v.bringToFront() donde v será su LinearLayout.

Cuestiones relacionadas