Autore Topic: Button. Testo su due righe con dimensioni differente  (Letto 680 volte)

Offline astropegaso61

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Button. Testo su due righe con dimensioni differente
« il: 26 Febbraio 2014, 09:44:44 CET »
0
Buongiorno a tutti,
per il mio Button non riesco nel mio intento;cioé
ottenere dimensione differente del testo disposto su due righe.
Vedi immagine di esempio.

Con la seguente stringa mi popolo il Button:
btn1.setText(R.string.lingua+" " +spinner1.getSelectedItem().toString());

Mi piacerebbe ottenere R.string.lingua con "30sp"
mentre la seconda parte spinner1.getSelectedItem().toString()); a dimensione standard.

Come si può fare?

Grazie anticipate a tutti.
« Ultima modifica: 05 Marzo 2014, 13:14:24 CET da astropegaso61 »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline astropegaso61

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Button. Testo su due righe con dimensioni differente
« Risposta #2 il: 27 Febbraio 2014, 11:11:40 CET »
0
Si Nicola_D, quello é un esempio.
Un altro esempio é questo:
http://stackoverflow.com/questions/12048862/creating-a-custom-button-with-two-lines-of-text-each-with-a-different-font

il link suggerito da Nicola_D io lo applicato in questo modo:
Codice (Java): [Seleziona]
Spannable span = new SpannableString(getString(R.string.intestazione) + "\n" +  s.getSelectedItem().toString());
int fontSize = 18;
int startIndex = 0;
int endIndex = 0;
span.setSpan(new AbsoluteSizeSpan(fontSize), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
btn1.setText(span);

Non sono invece riuscito ad applicare la versione html suggerita.
Codice (Java): [Seleziona]
Instead of doing it through code, you may simply achieve it by using html stuff in string resource. For example:
Define a string resource:

<string name="tmp"><font size="30">2</font>abc</string>

and apply it to your button's text:

android:text="@string/tmp"

Avete altri suggerimenti?

Continue Grazie a tutti. :-) :-) :-)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
tutti possiamo programmare...basta volerlo!!!

Offline astropegaso61

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Button. Testo su due righe con dimensioni differente
« Risposta #4 il: 24 Marzo 2014, 10:02:27 CET »
0
Riepilogando,
agendo sul file di risorse string.xml
Codice (Java): [Seleziona]
<!-- per avere un testo predefinito con differente dimensione -->
<string name="btn1"><font size="35">info </font>www.anddev.it</string>
su android ver.4 funziona
su android 2.2 non funziona

agendo programmaticamente
Codice (Java): [Seleziona]
Spannable span = new SpannableString(getString(R.string.intestazione) + "\n"+ spinner1.getSelectedItem().toString());
int fontSize = 25;
int startIndex = 0;
int endIndex = 10;
span.setSpan(new AbsoluteSizeSpan(fontSize), startIndex,endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
btn1.setText(span);
funziona su tutte le versioni di android.
Poichè bisogna specificare l'inizio e la fine dei caratteri da ingrandire non è applicabile quando la lunghezza del testo è variabile.
L'esempio ingrandisce solo i primi 10 caratteri.

Come si può agire in tal caso.