Android Studio:将按钮高度/长度设置为Android设备的某个百分比?

Android Studio:将按钮高度/长度设置为Android设备的某个百分比?,android,android-studio,Android,Android Studio,我正试图根据高度和宽度标准化多个Android设备上的按钮大小。例如,我希望长度为设备宽度的三分之一,高度约为设备高度的5-10%。我试着扩展一下: android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|bottom" android:gravity="center_hori

我正试图根据高度和宽度标准化多个Android设备上的按钮大小。例如,我希望长度为设备宽度的三分之一,高度约为设备高度的5-10%。我试着扩展一下:

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center|bottom"

        android:gravity="center_horizontal"
无济于事

任何帮助都将不胜感激。我正在运行Android Studio 1.4.0

-在这种情况下,您可以使用

<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.journaldev.percentlayouts.MainActivity">

    <Button
        android:text="Hello World!"
        android:textSize="20sp"
        app:layout_heightPercent="10%"
        app:layout_widthPercent="30%" />

</android.support.percent.PercentRelativeLayout>
如果您使用的是最新的API(,不推荐使用),您可以使用
ConstraintLayout

<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">

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/left_guideline"
        app:layout_constraintGuide_percent=".15"
        android:orientation="vertical"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/right_guideline"
        app:layout_constraintGuide_percent=".85"
        android:orientation="vertical"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/top_guideline"
        app:layout_constraintGuide_percent=".15"
        android:orientation="horizontal"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bottom_guideline"
        app:layout_constraintGuide_percent=".85"
        android:orientation="horizontal"/>

    <Button
        android:text="Button"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/button"
        app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
        app:layout_constraintRight_toRightOf="@+id/right_guideline"
        app:layout_constraintTop_toTopOf="@+id/top_guideline"
        app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" />

</android.support.constraint.ConstraintLayout>

尝试从java以编程方式完成

1.获取设备屏幕尺寸,并计算所需内容


2.在目标视图上或通过布局参数调用setHeight和setWidth。

,尝试使用布局权重。作为Android Studio的新手,我如何将百分比相对布局输入到我的应用程序中?是否创建新的布局资源文件?如果是,我如何将其合并到activity_main.xml中?@Aneyth是的,它需要渐变依赖性。希望你能找到。我也更新了答案。
<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">

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/left_guideline"
        app:layout_constraintGuide_percent=".15"
        android:orientation="vertical"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/right_guideline"
        app:layout_constraintGuide_percent=".85"
        android:orientation="vertical"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/top_guideline"
        app:layout_constraintGuide_percent=".15"
        android:orientation="horizontal"/>

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bottom_guideline"
        app:layout_constraintGuide_percent=".85"
        android:orientation="horizontal"/>

    <Button
        android:text="Button"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/button"
        app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
        app:layout_constraintRight_toRightOf="@+id/right_guideline"
        app:layout_constraintTop_toTopOf="@+id/top_guideline"
        app:layout_constraintBottom_toBottomOf="@+id/bottom_guideline" />

</android.support.constraint.ConstraintLayout>