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:
-
con
RelativeLayout
android.support.percent.PercentRelativeLayout
-
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 :