Alinea horizontalmente dos vistas de texto en un diseño
Necesito alinear horizontalmente dos textview
en el centro de la pantalla. Ambas textviews
tienen diferentes tamaños de fuente.
- Cómo reemplazar / cambiar el botón de la imagen mediante programación android
- Archivo de diseño XML anidado
- android Baja memoria: no más proceso de fondo ?? Necesitas ayuda
- Problema de edición de nueve parches de StateListDrawable
- La precarga de Webview de Android no funciona con Nexus
Aquí está mi código:
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top|center_horizontal" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:layout_gravity="center_horizontal" android:textColor="#FFFFFF" android:textSize="50sp" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/percent" android:textColor="#CCCCCC" android:textSize="20sp" /> </LinearLayout>
En este momento mis vistas de texto están alineadas a la izquierda y ambas están mostrando el mismo tamaño de fuente.
- Excepción android.content.res.Resources $ NotFoundException: Archivo res / drawable / my.xml del ID de recurso extraíble
- Diálogo con pestañas con fragmentos en el widget
- Android escalonado / multilínea Linear Layout?
- RecyclerView LinearLayout manager siempre devuelve -1 en modo horizontal - findLastCompletelyVisibleItemPosition ()
- ¿Por qué mi aplicación Android se bloquea cuando intento acceder a recursos de cadenas?
- No se puede mostrar el tiempo unix obtenido en textView
- Cómo estirar Layout para llenar la pantalla?
- Android - Eliminar CacheColorHint para ListView
Intentalo:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_vertical|right" android:text="75" android:textColor="#FFFF00" android:textSize="50sp" /> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center_vertical" android:text="%" android:textColor="#CCCCCC" android:textSize="20sp" /> </LinearLayout>
Explicación: establecí el diseño padre en wrap_content, significa que el padre envolvió su altura según las alturas de los niños. Hay 2 textviews en el padre. Uno tiene un tamaño de fuente más grande y otro tiene un tamaño de fuente más pequeño. Una vista más grande del tamaño de la fuente definitivamente tendría más altura entonces más pequeña. Por lo tanto, establecer la mayor altura de wrap_content. Ahora, la altura de la vista más pequeña es match_parent, significa que una más pequeña se expandiría a la altura máxima del padre que sería igual a la altura de la vista de la fuente más grande. Entonces, ambos serían center_aligned.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#31BBF9" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top|center_horizontal" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="75" android:textColor="#FFFFFF" android:textSize="50sp" /> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:text="%" android:textColor="#FFFFFF" android:gravity="center_vertical" android:textSize="20sp" /> </LinearLayout>
Salida
Cambiar testview (%) android:gravity="center_vertical"
a su elección
Prueba esto
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top|center_horizontal" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:textColor="#FFFFFF" android:textSize="50sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/percent" android:textColor="#FFFFFF" android:textSize="20sp" /> </LinearLayout>
Inténtalo por favor
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:textColor="#FFFFFF" android:textSize="50sp" android:gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="match_parent"/> <TextView android:gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="@string/percent" android:textColor="#CCCCCC" android:textSize="20sp" /> </LinearLayout>
Puede utilizar la disposición relativa para lograr lo anterior. Compruebe el código a continuación
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:gravity="center_horizontal" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="75" android:textSize="20sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/percent" android:textSize="20sp" /> </LinearLayout> </RelativeLayout>
Utilice este código en el archivo xml
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white_color" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:orientation="horizontal" > <TextView android:id="@+id/progressstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textColor="#FFFFFF" android:textSize="50sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/percent" android:textColor="#CCCCCC" android:textSize="20sp" /> </LinearLayout> </RelativeLayout>
Echa un vistazo a este
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="20dp" > <TextView android:id="@+id/progressstatus" android:layout_gravity="center_horizontal" android:textColor="#FFFFFF" android:textSize="50sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/percent" android:textColor="#CCCCCC" android:gravity="center" android:textSize="20sp" /> </LinearLayout> </LinearLayout>
Puedes hacerlo usando una vista de texto
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black" tools:context="com.example.demo.MainActivity$PlaceholderFragment" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:text="75%" android:textSize="20sp" android:gravity="top" android:layout_centerHorizontal="true"/> </RelativeLayout> TextView textView = (TextView) findViewById(R.id.tv); Spannable span = new SpannableString(textView.getText()); span = new SpannableString(textView.getText()); span.setSpan(new CustomCharacterSpan(), 2, 3, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);//u can use ur own ratio using another constructor textView.setText(span, TextView.BufferType.SPANNABLE); span.setSpan(new RelativeSizeSpan(3f), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(span); package com.example.demo; import android.text.TextPaint; import android.text.style.MetricAffectingSpan; public class CustomCharacterSpan extends MetricAffectingSpan { double ratio = 1.5; public CustomCharacterSpan() { } public CustomCharacterSpan(double ratio) { this.ratio = ratio; } @Override public void updateDrawState(TextPaint paint) { paint.baselineShift += (int) (paint.ascent() * ratio); } @Override public void updateMeasureState(TextPaint paint) { paint.baselineShift += (int) (paint.ascent() * ratio); }}
Para más referencia, puede comprobar este enlace Dos estilos diferentes en una única vista de texto con diferentes gravedad y altura