¿Cambiar el ancho del cajón en Android por peso?

Tengo este diseño, con un cajón adentro:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Main" /> <LinearLayout android:id="@+id/drawer" android:layout_width="240dp" android:layout_height="match_parent" android:orientation="vertical"/> </android.support.v4.widget.DrawerLayout> 

Quiero cambiar el ancho del cajón estableciendo pesos, ¿cómo hacerlo con este ejemplo? Quiero que el ancho del cajón tome siempre 1/2 de la anchura visible de la pantalla.

Lo haría de forma programática en su código. Usted necesitará el ancho y la altura de la pantalla y entonces usted puede modificar el ancho de su disposición linear arriba. Obtenga la altura y el ancho con lo siguiente:

 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); displayViewWidth_ = size.x; displayViewHeight_ = size.y; 

A continuación, puede asignar a su diseño un nuevo ancho dentro de su código basado en este cálculo, como por ejemplo:

 ViewGroup.LayoutParams params = drawer.getLayoutParams() params.width = displayViewWidth_ / 2; drawer.setLayoutParams(params); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.