Если вы имеете в виду половину высоты экрана, вы не можете изменить ее в XML, а в коде, подобном так, и он будет обновляться при запуске приложения:
//Getting the height of the screen
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
LayerDrawable layerDrawable = (LayerDrawable) getResources().getDrawable(R.drawable.test);
GradientDrawable gradientDrawable = (GradientDrawable) layerDrawable.findDrawableByLayerId(R.id.green_shape);
gradientDrawable.setBounds(0,0, 0, height/2); //setbottom bound to be half of the height
И xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="50dip">
<layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/white"></solid>
</shape>
</item>
<item android:id="@+id/green_shape">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_green_light"></solid>
</shape>
</item>
</layer-list>
</item>
<item android:right="150dip">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ff0000" />
</shape>
</item>
</layer-list>