studio programacion porcentaje percentrelativelayout móviles elementos desarrollo curso aplicaciones amontonados android android-view android-preferences android-styles

programacion - porcentaje en android studio



¿Cómo utilizar el porcentaje para el diseño de Android? (6)

¿Cómo podemos usar valores porcentuales para los elementos de vista de Android? algo como esto

<TextView android:id="@+id/" android:layout_width="75%" android:layout_height="50%"/>


Dado que tanto PercentFrameLayout como PercentRelativeLayout están en desuso en 26.0.0, debe usar ConstraintLayout para dimensionar su TextView con valores de porcentaje.

ConstraintLayout es una herramienta realmente poderosa para crear una interfaz de usuario receptiva para la plataforma Android, puede encontrar más detalles aquí ConstraintLayout .

Aquí está el ejemplo de cómo dimensionar su TextView (w = 75%, h = 50%) usando 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>

No olvide agregar dependencia de constraint-layout al archivo build.gradle su módulo

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

O edite su diseño directamente en el Editor de diseño, como se muestra a continuación:

Como resultado, el ancho de TextView es del 75% del ancho principal y la altura es del 50% del alto principal:


Google tiene una nueva API llamada android.support.percent

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


La biblioteca de soporte acaba de agregar un diseño porcentual.

Se puede hacer así

<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


Puede usar PercentRelativeLayout , es una adición reciente no documentada a la Biblioteca de soporte de diseño , permite la capacidad de especificar no solo elementos relativos entre sí sino también el porcentaje total de espacio disponible.

Estructura es

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

El paquete Percent proporciona API para admitir la adición y administración de dimensiones basadas en porcentajes en su aplicación.

Para usar, debe agregar esta biblioteca a your Gradle dependency lista de your Gradle dependency :

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

Para fines de demostración, puede visitar Git android-percent-support-lib-sample .


Puede usar PercentRelativeLayout Es una subclase de RelativeLayout que admite dimensiones y márgenes basados ​​en porcentajes.

Para usar, debe agregar esta biblioteca a su Gradle dependency :

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

Estructura de la muestra es

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


ACTUALIZACIÓN 2018:

PercentRelativeLayout y PercentFrameLayout están en desuso. Considere usar ConstraintLayout

Vieja respuesta:

Hasta ahora, la biblioteca de soporte de Android ha limitado dónde usar esto:

  1. con RelativeLayout

    android.support.percent.PercentRelativeLayout

  2. con FrameLayout

    android.support.percent.PercentFrameLayout

¿Cómo usarlo?

Bueno, primero asegúrese de incluir la dependencia en build.grade(Module: app) en su aplicación de Android.

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

Luego navegue a su diseño xml en este ejemplo (.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>

Para más detalles, consulte here :