¿Icono con el interior del texto – cómo definir en la disposición?
Quiero tener un TextView
(para mostrar un recuento) sobrevolando un icono en el ActionBar. Lo que hice fue tener un RelativeLayout
, establecer un fondo para él, a continuación, poner ese TextView
en ese diseño y tornillo con el margen hasta que encaje, pero que se rompe tan pronto como la longitud del texto varía. Establecer un fondo en el TextView
no es grande tampoco porque no puedo colocar el texto en relación con el icono.
Aquí está mi XML:
- ¿Cómo usar relativelayout.setBackgroundDrawable () con un mapa de bits?
- Igualar padre para viewpager dentro de scrollview no funciona
- Adición de un TextView dentro de la preferencia de Preferencias de pantalla
- ¿El inflador requiere el contexto de la Actividad?
- El elemento ListView no extenderá el ancho a fill_parent
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_gravity="fill_horizontal" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/cart" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:layout_marginTop="5dp" android:layout_marginLeft="43dp" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout> </RelativeLayout>
Y aquí hay una captura de pantalla para mostrar lo que quiero decir:
¿Hay una manera libre de estrés, una biblioteca tal vez, que me permite establecer un TextView
sobre un Drawable
para que el TextView siempre está centrado / posicionado?
- Android: Cómo utilizar herramientas con diseño de inclusión
- ¿Cómo aplicar una transparencia (enfoque?) Al pulsar cualquier elemento (como lo hace Google)?
- Android DisplayMetrics devuelve un tamaño de pantalla incorrecto en píxeles en ICS
- Adición dinámica de fila personalizada a listview
- ¿Puede usted fijar el color de fondo en un botón del toggle sin cubrir para arriba el toggle?
- Establecer el enfoque de pulgar y presionado de forma programable mediante drawbar personalizado
- BringToFront no funciona en RecyclerView
- ¿Cómo puedo especificar una altura dinámica para un ImageView?
Establecer un fondo en el TextView no es grande tampoco porque no puedo colocar el texto en relación con el icono.
En realidad usted puede colocar su texto en relación con su icono. Debe separar el ícono del carro y el ícono de la insignia de número como imágenes separadas y colocarlas individualmente. Tuve que hacer esto yo no hace mucho tiempo, y lo hice con un RelativeLayout
, con un ImageView
del icono del carrito y un TextView
para los números con un "parche" de 9 parches como fondo.
El truco consiste en alinear el número TextView
a la izquierda y la parte inferior del icono del carro ImageView
y, a continuación, utilice los márgenes izquierdo y inferior para empujar su insignia de número a la parte superior y derecha de su icono de carrito. De esta manera, la insignia de número siempre se basa en el icono del carrito.
Además, establezca la gravity
de su TextView
en el center
, a medida que los números crecen más ancho, la posición relativa del texto es casi la misma. Por último, utilice padding
en su TextView
para controlar cuánto espacio hay entre el borde del número y el borde de su "insignia" 9 parches.
He aquí un fragmento de mi implementación (he redactado algo de esto):
<RelativeLayout android:id="@+id/cartButton" android:layout_width="wrap_content" android:layout_height="fill_parent" > <ImageView android:id="@+id/cartIconImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:src="@drawable/ic_menu_cart" /> <TextView android:id="@+id/cartBadge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/cartIconImageView" android:layout_alignLeft="@+id/cartIconImageView" android:layout_marginBottom="10dp" android:layout_marginLeft="9dp" android:background="@drawable/state_list_cart_badge" android:gravity="center" android:includeFontPadding="false" android:lines="1" android:paddingLeft="8dp" android:paddingRight="8dp" android:text="7" /> </RelativeLayout>
Y esto es lo que parece:
Utilice un FrameLayout. Siempre se le llama inútil, pero si me preguntas que es perfecto para establecer una vista encima de otro.
Cita :
Las vistas de los niños se dibujan en una pila, con el niño añadido más recientemente en la parte superior. El tamaño de FrameLayout es el tamaño de su hijo más grande (más el relleno), visible o no (si el padre de FrameLayout lo permite). Las vistas que se GONE se utilizan para dimensionar sólo si setConsiderGoneChildrenWhenMeasuring () se establece en true.
Yo sólo usaría un TextView, y establecer un parche 9 como el fondo:
Usted puede ser que tenga que jugar alrededor con él (yo apenas batido esto para arriba en un minuto o dos), pero algo como el derecho muy inferior en la imagen es lo que usted quiere. Será mucho más consistente que tratar dos puntos de vista.
- El lienzo no se muestra en dispositivos móviles
- ¿Funcionará TelephonyManager.getDeviceId sin tarjeta SIM?