RelativeLayout:是否可以将“dp”中的值替换为相对于屏幕大小的单位?

时间:2016-01-18 23:15:16

标签: android xml android-layout android-studio relativelayout

我需要一个与屏幕尺寸相关的度量单位。 我的目标是复选框位置在几个屏幕上保持相对相同的位置。 我正在使用几个复选框,没有布局可以比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"

1 个答案:

答案 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