Creación de un botón personalizado con dos líneas de texto, cada una con una fuente diferente
Estoy un poco atascado aquí y realmente podría usar algo de ayuda. Me parece que debería ser bastante fácil agregar dos líneas de texto separadas a un botón. Pero simplemente no lo es. Hay una manera de hacerlo con etiquetas html, pero eso no le permite especificar la fuente o el tamaño del texto más allá de "grande" y "pequeño".
Aquí está mi botón, se llama 'clicky':
- Calcular el tamaño de la imagen cuando se utiliza setCompoundDrawables para EditText
- Cómo establecer drawables en barra de acción de mi aplicación Android
- Android - setVisibility resultados en java.util.ConcurrentModificationException
- Advertencia del adaptador de enlace personalizado de DataBinding de Android
- Admob AdView que hace que ScrollView se desplace cuando se muestra
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/buttondown" android:state_pressed="true" /> <item android:drawable="@drawable/buttonup" /> </selector>
Y aquí es donde aparece en uno de los archivos de diseño:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/clicky" android:layout_width="137.5dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerHorizontal="true" android:layout_marginTop="2dip" android:layout_marginBottom="2dip" android:layout_marginRight="1dip" android:textSize="20dip" android:background="@drawable/clicky" /> <ListView android:id="@+id/ListView01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:divider="#000000" android:dividerHeight="2dip" android:layout_below="@+id/separator"/> </RelativeLayout>
Y esto es lo que tengo en el método onCreate ():
Typeface customFont = Typeface.createFromAsset(getAssets(),"fonts/zooper.ttf"); Button mButton=(Button)findViewById(R.id.clicky); mButton.setText("Hi There"); TextView clicky = (TextView)findViewById(R.id.clicky); clicky.setTypeface(customFont);
El texto en el botón se crea dinámicamente así que tengo que hacerlo desde aquí (ahora mismo es estático, pero más tarde "Hi There" será reemplazado por una variable). La otra línea de texto será mucho más pequeña, estática y colocada debajo de "Hola". He pasado por todo en Google que incluso remotamente se asemeja a mi pregunta, pero no puedo encontrar una respuesta que me pueda adaptar a mi problema.
Así que una vez más, necesito un solo botón con dos líneas separadas de texto, una encima de la otra. La línea superior es grande, creada dinámicamente y utiliza una fuente personalizada. La línea inferior del texto será mucho más pequeña, estática y puede utilizar una fuente del sistema.
¿Es realmente tan difícil anidar un LinearLayout dentro de un botón?
Cualquier ayuda sería muy apreciada.
- Android: Botón con dos imágenes | alineación
- Android RecyclerView Desplazamiento no funciona después de la edición de diseño
- Actualización dinámica de TabLayout sin cambiar la ficha seleccionada
- ¿Es posible agregar un TextView desplazable a un ListView?
- ¿Existe una etiqueta XML equivalente a `ListView.addHeaderView '?
- ¿Cómo se limita el número de puntos de vista?
- Cómo utilizar el adaptador mientras llena los diseños
- Estado de ahorro en widgets de vista compuesta
String s1; String s2; int n = s1.length(); int m = s2.length; Typeface customFont = Typeface.createFromAsset(getAssets(),"fonts/zooper.ttf"); Spannable span = new SpannableString(s1 + "\n" + s2); //Big font till you find `\n` span.setSpan(new CustomTypefaceSpan("", customFont), 0, n, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //Small font from `\n` to the end span.setSpan(new RelativeSizeSpan(0.8f), n, (n+m+1), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); yourButton.setText(span);
- descodificador base64 en android en API nivel 7
- ¿Cómo puedo crear 2 filas de botones en el archivo android layout.xml