8

我是android开发的新手。我想在 Xml 中设置边距和填充,而不是在 dp 或 px 中,而是在百分比中。有没有办法做到这一点?

4

4 回答 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 以获取更多详细信息。

Android 布局参数指南

问候, 阿基夫·哈米德

于 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 回答