我是android开发的新手。我想在 Xml 中设置边距和填充,而不是在 dp 或 px 中,而是在百分比中。有没有办法做到这一点?
问问题
12385 次
4 回答
5
这是不可能的,尽管你最好通过在你的java代码中像下面这样获取屏幕的宽度和高度来做到这一点,并且
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
然后根据屏幕尺寸计算您的边距,并将其设置为
setmargin(int x) //method of view/layout.
通过这种方式,您可以根据屏幕大小设置边距,而不是针对所有屏幕固定,基本上它就像以百分比设置,但来自 Java 代码。
于 2012-06-29T06:16:56.807 回答
1
ConstraintLayout 中引入的指南使这成为可能。
这是放置在屏幕宽度的 60% 和屏幕高度的 25% 处的 TextView 的示例:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintLeft_toLeftOf="@+id/guideline1"
app:layout_constraintTop_toTopOf="@+id/guideline2" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline1"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.6" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline2"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.25" />
</android.support.constraint.ConstraintLayout>
于 2017-10-10T13:54:10.993 回答
0
如果您尝试在控件之间以百分比共享屏幕宽度。在 android 中做到这一点的最好方法是weight
为它们使用属性。检查以下 URL 以获取更多详细信息。
问候, 阿基夫·哈米德
于 2012-06-29T06:25:17.987 回答
0
虽然已经很晚了,但可以使用 Android percentRelativeLayout https://developer.android.com/reference/android/support/percent/PercentRelativeLayout.html 可以使用具有某些属性的百分比,但并非所有属性都受支持。百分比仍然不支持填充,而边距是。
于 2016-11-13T06:46:43.543 回答