2012-07-26 12 views
5

Sto personalizzando un pulsante in Android cambiando il suo background (usando un file png di 9patch) e cambiando il suo carattere tipografico. Inserisco il pulsante in un RelativeLayout poiché ho bisogno di posizionamenti e quotature precise di questo elemento in un layout personalizzato. Sto facendo tutto questo programmaticamente (dalla creazione all'impostazione e alla visualizzazione).Come si può evitare di tagliare il testo su un pulsante?

Ho trovato this question con lo stesso problema, ma la soluzione non funzionerà per me. Ho usato

continueBtn.setPadding(0,0,0,0); 

ma l'uscita grafica rimane la stessa. Più della metà del testo è troncato nella vista.

Un estratto del codice che sto usando è il seguente:

Button continueBtn = new Button(getContext()); 
p = new RelativeLayout.LayoutParams(width, 45); 
p.addRule(CENTER_HORIZONTAL); 

continueBtn.setLayoutParams(p); 
continueBtn.setTypeface(...); 
continueBtn.setTextSize(14); 
outerLayout.addView(continueBtn); 
continueBtn.setPadding(0, 0, 0, 0); 

Non importa dove ho messo la chiamata setPadding metodo, le cose non cambieranno. Cosa sto sbagliando? Qualche idea?

+0

Probabilmente si desidera aggiungere il padding a LayoutParams prima di impostarli per il pulsante? Perché la soluzione di imbottitura "non funziona per [tu]"? – matt5784

+0

Hai usato .setPadding con solo 0 valore? Hai provato il padding senza RelativeLayout? – Ali

+0

@ matt5784 Non posso aggiungere padding a 'RelativeLayout.LayoutParams', poiché non riesco a vedere nessuna API adatta. @ Ali ho usato '.setPadding' con un paio di valori diversi, ma nulla è cambiato. – marzapower

risposta

0

Si sta impostando un'altezza costante per il pulsante di 45 (pixel, immagino). Tuttavia, a quanto pare il testo che stai cercando di inserire è più alto della quantità di spazio che Android ti permetterà di usare. Rendi il tuo pulsante più alto (cambiando i LayoutParam) e si adatta senza interruzioni. In alternativa, usa una dimensione di testo più piccola in modo che il testo sia più corto e più in forma.

+0

Questo è esattamente ciò che non posso fare. A proposito, c'è molto spazio nell'area occupata dal pulsante per visualizzare completamente il testo, ma a quanto pare non viene visualizzato correttamente. – marzapower

+0

Pubblica uno screenshot, per favore. – matt5784

+0

P.S. se il tuo layout è calibrato con precisione e utilizza pixel (invece di dp), funzionerà solo sulla risoluzione dello schermo su cui stai eseguendo il test ... quindi il tuo layout non sarà comunque perfetto (tranne sul tuo dispositivo) . – matt5784

Problemi correlati