3

是否可以根据屏幕宽度和高度的百分比而不是像素来排列 TextView 或相关元素的基于 XML 的位置?例如,可以

android:layout-marginLeft="150dip" 

用类似的东西代替

android:layout-marginLeft="25%"? 

如果没有,是否有可能以编程方式这样做?

4

2 回答 2

3

layout_margin属性不接受百分比值。

您正在寻找允许您使用百分比来定义布局的LinearLayout属性:android:layout_weight

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".25" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".75" />

</LinearLayout>

在此示例中,左侧TextView使用 25% 的屏幕,右侧使用TextView75%。

于 2013-08-27T21:38:10.963 回答
1

使用 PercentRelativeLayout ( http://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html )

<android.support.percent.PercentRelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentFrameLayout>
于 2016-05-09T15:44:57.230 回答