web-dev-qa-db-fra.com

Comment utiliser le pourcentage pour la mise en page Android?

Comment pouvons-nous utiliser les valeurs pourcentage pour Android voir les éléments? Quelque chose comme ceci

<TextView
        Android:id="@+id/"
        Android:layout_width="75%"
        Android:layout_height="50%"/>
35
masoud p

MISE À JOUR 2018:

PercentRelativeLayout et PercentFrameLayout sont obsolètes. Pensez à utiliser ConstraintLayout

Ancienne réponse:

Jusqu'ici Android La bibliothèque de support n'a pas précisé où l'utiliser:

  1. avec RelativeLayout

    Android.support.percent.PercentRelativeLayout
    
  2. avec FrameLayout

    Android.support.percent.PercentFrameLayout
    

Comment l'utiliser?

Bien, assurez-vous d’abord d’inclure la dépendance en build.grade(Module: app) dans votre Android app.

dependencies {
    compile 'com.Android.support:percent:23.3.0'
}

Ensuite, accédez à votre mise en page XML dans cet exemple (.MainActivity)

<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"
  Android:paddingBottom="@dimen/activity_vertical_margin"
  Android:paddingLeft="@dimen/activity_horizontal_margin"
  Android:paddingRight="@dimen/activity_horizontal_margin"
  Android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity">


  <Button
    Android:id="@+id/button"
    Android:text="Button"
    Android:layout_height="wrap_content"
    Android:layout_alignParentTop="true"
    app:layout_widthPercent="30%"/>

  <Button    
    Android:id="@+id/button2"
    Android:text="Button 2"
    Android:layout_height="wrap_content"
    Android:layout_toRightOf="@id/button"
    app:layout_widthPercent="60%"/>

  <Button
    Android:id="@+id/button3"
    Android:text="Button 3"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/button"
    Android:layout_alignParentStart="true"
    Android:layout_alignParentLeft="true"
    app:layout_widthPercent="90%"/>

</Android.support.percent.PercentRelativeLayout>

Pour plus de détails s'il vous plaît vérifier ici :

48
Aron

La bibliothèque de support vient d'ajouter une disposition en pourcentage.

Cela peut être fait comme ça

 <Android.support.percent.PercentFrameLayout
     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>

https://developer.Android.com/reference/Android/support/percent/PercentFrameLayout.html

13
Chris Thoma

Vous pouvez utiliser PercentRelativeLayout , Il s’agit d’un ajout récent et non documenté à = Bibliothèque de support technique , permet de spécifier non seulement des éléments les uns par rapport aux autres, mais également le pourcentage total de ressources disponibles. espace.

La structure est

<Android.support.percent.PercentRelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    >
    <ImageView
        Android:id="@+id/imageview"
        Android:layout_gravity="center"
        app:layout_widthPercent="50%"
        app:layout_heightPercent="50%"
        Android:src="@mipmap/ic_launcher"
        Android:background="#cecece"/>
    <TextView
        Android:id="@+id/textview1"
        Android:layout_below="@id/imageview"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        app:layout_marginStartPercent="25%"
        app:layout_marginEndPercent="25%"
        Android:text="PercentRelativeLayout example"
        Android:background="#bebebe"/>


</Android.support.percent.PercentRelativeLayout>

Le package Pourcentage fournit des API permettant de prendre en charge l'ajout et la gestion de dimensions basées sur un pourcentage dans votre application.

Pour l'utiliser, vous devez ajouter cette bibliothèque à your Gradle dependency liste:

dependencies {
    compile 'com.Android.support:percent:22.2.0'
    // or compile 'com.Android.support:percent:23.1.0'
}

Pour des raisons de démonstration, vous pouvez visiter Git Android-percent-support-lib-sample .

11
IntelliJ Amiya

Avec PercentFrameLayout et PercentRelativeLayout à la fois dépréciés dans 26.0.0, vous devez utiliser ConstraintLayout pour dimensionner votre TextView avec des valeurs en pourcentage.

ConstraintLayout est un outil vraiment puissant pour créer une interface utilisateur réactive pour la Android, vous pouvez trouver plus de détails ici Construire une interface utilisateur réactive avec ConstraintLayout .

Voici l'exemple de la taille de votre TextView (w = 75%, h = 50%) à l'aide de 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:id="@+id/ver_guideline"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:orientation="vertical"
        app:layout_constraintGuide_percent="0.75"/>

    <Android.support.constraint.Guideline
        Android:id="@+id/hor_guideline"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5"/>

    <TextView
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:layout_marginBottom="0dp"
        Android:layout_marginEnd="0dp"
        Android:layout_marginStart="0dp"
        Android:layout_marginTop="0dp"
        app:layout_constraintBottom_toTopOf="@+id/hor_guideline"
        app:layout_constraintEnd_toStartOf="@+id/ver_guideline"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</Android.support.constraint.ConstraintLayout>

N'oubliez pas d'ajouter constraint-layout _ dépendance à votre module build.gradle fichier

dependencies {
    ...
    implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
    ...
}

Ou éditez votre mise en page directement dans l'éditeur de mise en page, comme indiqué ci-dessous:

Layout Editor

En conséquence, votre TextView largeur correspond à 75% de la largeur du parent et sa hauteur à 50% de la hauteur du parent:

Image-1

Image-2

9
Eugene Brusov

Google a une nouvelle API appelée Android.support.percent

Exemple PercentRelativeLayout

 <Android.support.percent.PercentFrameLayout
         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/myTextView"
         app:layout_widthPercent="75%"
         app:layout_heightPercent="50%"/>
 </Android.support.percent.PercentFrameLayout>
5
N J

Vous pouvez utiliser PercentRelativeLayout. Il s'agit d'une sous-classe de RelativeLayout qui prend en charge les dimensions et les marges en pourcentage.

Pour l'utiliser, vous devez ajouter cette bibliothèque à votre Gradle dependency:

dependencies {
    compile 'com.Android.support:percent:23.1.0'
}

La structure de l'échantillon est

<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.PercentRelativeLayout>
3
Ravi Rupareliya