Android - 基于百分比而不是像素的位置视图

时间:2013-08-27 21:26:37

标签: android android-layout position percentage pixels

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

android:layout-marginLeft="150dip" 

替换为

之类的东西
android:layout-marginLeft="25%"? 

如果没有,是否可以通过编程方式执行此操作?

2 个答案:

答案 0 :(得分: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%,右侧TextView使用75%。

答案 1 :(得分: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>