Вы должны действительно старайтесь избегать того, чтобы это усложнялось, думая обо всех разных размерах экрана, а также о плотностях и т. Д.
Вы говорите, что хотите, чтобы ваша кнопка занимала 75% экрана.
Хорошо, поместите его в LinearLayout примерно так:
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent
android:orientation="horizontal">
<My75PercentButton
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="75">
<View
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="25">
</LinearLayout>
Это делает два вида имеют ширину 0, но распространяется на 75% доступного пространства для них после этого в первый, и 25% во вторую.
Если вы хотите, чтобы ваша кнопка растягивалась, чтобы заполнить это пространство (вместо того, чтобы просто оставить пустую прокладку вокруг него), сделайте это 9-патч.
Вы также хотите поддерживать различные плотности экрана, поэтому укажите различные размеры изображений для вашей кнопки в drawable-ldpi, drawable-mdpi и drawable-hdpi.
Но я действительно предостерег: пытаясь протолкнуть себя в мир, где вы разрабатываете свою графику для разных размеров экрана, вы окажетесь в огромном мире обид. Вы действительно не хотите этого делать. Уже запущено множество экранов Android-устройств; это только в будущем значительно возрастет. Если вы воспользуетесь менеджерами компоновки и другими такими средствами для настройки фактического размера экрана, ваше приложение будет хорошо работать на всех этих экранах, при этом с вашей стороны практически не будет работать. Если вы попытаетесь спроектировать свою графику для определенных размеров экрана, вы будете делать это снова и снова, пока вы не сможете этого выдержать.
Поддерживает ли поддержка Android SVG? – HardQuestions