2012-09-06 20 views
6

Soy bastante nuevo en Android, por lo que probablemente sea una pregunta estúpida, pero aquí va.Android: Altura de diseño en porcentaje de resolución de pantalla

Tengo un RelativeLayout de actividad. En este diseño, tengo otro diseño en la parte inferior de una pantalla. A veces lo oculto o lo hago visible, esto no tiene importancia. ¿Es posible hacer que la altura del otro diseño digamos el 27% de la altura total de la pantalla? La idea es mantener el otro contenido, excepto este diseño en la pantalla.

¿Alguien ha intentado algo como esto?

+0

¿Quiere decir que quiere dos partes de la pantalla - la parte superior un 73% de la pantalla y el segundo es el 27%? ¿O quiere decir que quiere una vista que se encuentre dentro de otra vista que cubra el 27% inferior de todo el elemento primario cuando sea visible? – brianestey

Respuesta

22

LinearLayout puede manejar esto a través de android:layout_weight. Por ejemplo, aquí hay una presentación que contenga tres Button widgets, ocupando el 50%, 30% y 20% de la altura, respectivamente:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="50" 
     android:text="@string/fifty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="30" 
     android:text="@string/thirty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="20" 
     android:text="@string/twenty_percent"/> 

</LinearLayout> 

Sin embargo, no se puede simplemente declara que un widget de arbitraria en un punto arbitrario en su archivo de diseño debe tomar un porcentaje arbitrario del tamaño de la pantalla. Sin embargo, puede realizar ese cálculo en Java y ajustar el widget LayoutParams según sea necesario.

+0

Solución perfecta –

1

puede probar esto, es más complejo pero útil.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/parent_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/app_name" /> 

<LinearLayout 
    android:id="@+id/parent_of_bottom_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_alignParentBottom="true" > 

    <LinearLayout 
     android:id="@+id/content_view" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="27"> 

     //Add your content here 

    </LinearLayout> 
</LinearLayout> 

+0

¿Puede ampliar cómo funciona esto y por qué responde la pregunta? –

+0

No se puede usar android: layout_weight dentro de RelativeLayout entonces, utilicé LinearLayout para hacer el weignt en proporción dentro de un diseño relativo, encontré la solución de mi proyecto de código, así que la compartí. – wSakly

+0

Gracias, ese es un enfoque interesante para el problema. –

Cuestiones relacionadas