You can’t specify a percentage. You need to specify a Dimension value to it.
android:width
is defined here: http://developer.android.com/reference/android/R.attr.html#width :
(emphasis mine)
Must be a dimension value, which is a floating point number appended with a unit such as “14.5sp”. Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).
For a definition of each dimension type, see: http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
You will need to create your own attribute (see styleable) and perform the calculations yourself in onDraw(...)
.
See these two questions and the links therein for examples: