我需要一个与屏幕尺寸相关的度量单位。 我的目标是复选框位置在几个屏幕上保持相对相同的位置。 我正在使用几个复选框,没有布局可以比RelativeLayout更好地表达我想要的界面。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:screenOrientation="landscape"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBox
android:layout_width="39dp"
android:layout_height="32dp"
android:id="@+id/aae"
android:background="@drawable/aae"
android:layout_marginLeft="50dp"
android:layout_marginTop="185dp"
android:checked="false"
android:clickable="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
可以将“dp”中的值替换为相对于屏幕尺寸的单位吗?
android:layout_width="39dp"
android:layout_height="32dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="185dp"
答案 0 :(得分:1)
您可以使用resource qualifiers为DP提供多个值,具体取决于屏幕尺寸或密度。
这将允许您拥有:
在values / dimens.xml中<dimen name="width">39dp</dimen>
和
值{mdpi / dimens.xml
<dimen name="width">10dp</dimen>
以上内容允许您在中密度设备上将宽度设置为10dp,在中等密度设备上设置为39dp。
或者,您可以使用支持库中提供的新PercentRelativeLayout。
确保将compile "com.android.support:percent:23.1.1"
添加到您的app模块build.gradle