这并不是真正的“填充的相对大小”,但我认为使用XML 中定义的 Android 尺寸值可以满足您的需求。很难从您的问题中猜出,因为您既想避免“硬编码像素”又想“从 xml 中执行此操作”;)
上面的链接给出了这个例子;
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textview_height">25dp</dimen>
<dimen name="textview_width">150dp</dimen>
<dimen name="ball_radius">30dp</dimen>
<dimen name="font_size">16sp</dimen>
</resources>
然后;
<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>
Android SDK 本身使用这种方法;
在例如values/dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
values-sw600dp/dimens.xml
<resources>
<!--
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw600dp devices (e.g. 7" tablets) here.
-->
</resources>
当您使用“配置限定符名称”提供资源时,您可以针对values-FOO
API 级别、屏幕尺寸、纵向与横向、上述“以及更多”的组合。