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

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

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

introduzca la descripción de la imagen aquí

  • cómo hacer que los ítems del menú de la barra de acción de Android hagan clic automáticamente
  • Android TextView: Cambiar el color del texto al hacer clic
  • ClassCastException: android.support.v7.widget.LinearLayoutCompat $ LayoutParams no se puede convertir en android.widget.LinearLayout $ LayoutParams
  • Llamadas de bloqueo de Android Canvas IllegalArgumentException
  • RelativeLayout dentro de scrollview no se desplaza
  • ¿Cómo puedo mostrar la lista de aplicaciones ya instaladas en el teléfono android en listview?
  • Reemplazar (o "Anular") cadena en el proyecto de la biblioteca de Android
  • ¿Cuál es la diferencia entre removeAllViews () y removeAllViewsInLayout ()
  • Colocar la vista dentro de FrameLayout en Android
  • Android: RecyclerView dentro de un ScrollView (o paralaje)
  • Tratando de agregar un fragmento a mi contenedor de fragmentos FrameLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.