是否可以根据屏幕宽度和高度的百分比而不是像素来排列TextView或相关元素的基于XML的位置?例如,可以
android:layout-marginLeft="150dip"
替换为
之类的东西android:layout-marginLeft="25%"?
如果没有,是否可以通过编程方式执行此操作?
答案 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>