Visualizzazione stampabile
-
TextView con Background
Salve gente, era un pò che non mi rimettevo a programmare su Android e adesso mi sono imbattuto in un piccolo intoppo.
Devo inserire una serie di TextView alle quali devo aggiungere uno sfondo che sia ridimensionabile in base alle dimensioni della TextView, qualche suggerimento?
Se disegno lo sfondo più grande allora la TextView prende le dimensioni dell'immagine e mi si sfasa tutto, inoltre non so a priori le dimensioni delle TextView xke cambiano di volta in volta.
Suggerimenti??
-
-
ci avevo dato un occhio ma non sono riuscito a capire come funzionano.
Una volta creata l'immagine *.9.png e messa dentro alla cartella res/drawable/ non riesco a metterla sfondo facendo:
codice:
TextView.setBackgroundResource(R.drawable.???)
è come se non venisse caricata l'immagine, sicuramente sbaglio qualcosa ma nn saprei dove.
Poi ho anche un dubbio, le 9-patch sono usate quando l'immagine si deve ridimensionare in base al testo contenuto, a me invece serve che si ridimensionino in base alle dimensioni della TextView e non del testo in esse contenute.
-
Quote:
Originariamente inviato da
misterade
ci avevo dato un occhio ma non sono riuscito a capire come funzionano.
Una volta creata l'immagine *.9.png e messa dentro alla cartella res/drawable/ non riesco a metterla sfondo facendo:
codice:
TextView.setBackgroundResource(R.drawable.???)
è come se non venisse caricata l'immagine, sicuramente sbaglio qualcosa ma nn saprei dove.
Poi ho anche un dubbio, le 9-patch sono usate quando l'immagine si deve ridimensionare in base al testo contenuto, a me invece serve che si ridimensionino in base alle dimensioni della TextView e non del testo in esse contenute.
no le 9patch si ridimensionano in base alla superficie a cui sono applicate. se metti la 9patch come background di una textview ad esempio, sara' tutta l'area occupata dalla textview.
quando costruisci una 9patch puoi definire le aree che vengono usate per lo "stretching" dell immagine (aree in alto e a sinistra dell'immagine), e anche quelle ad uso del "content" (aree in basso e a destra dell' immagine).
quando setti il background mi raccomando non mettere nessuna estensione del file 9patch (cioe' se il tuo file e' prova.9.png, nel setbackground devi solo mettere prova)
-
Ok ho provato:
con il tool ho messo le linee nere sopra sotto a destra e a sinistra per includere tutta l'immagine nello strech (ma non ho capito la faccenda del content ke dicevi)
Poi sono riuscito ad impostarla come sfondo, come dicevi, senza aggiungere .9.png, ma il problema persiste, il quadrato della TextView prende le dimensioni dell'immagine appena viene applicato lo sfondo.
-
Perchè tu stretchi tutta l'immagine e questa probabilmente è piu grande della textview. Perciò fai cosi:
- Crea l'immagine piu piccola
- Applica il .9 patch solamente sulle parti dove vuoi che l'immagine si stretchi.
Facci sapere! :)
-
ok sembra funzionare, quindi devo per forza fare l'immagine più piccola di quello che mi aspetto e poi con le 9patch strecchare, quindi presumo che l'ideale sarebbe mettere delle immagini vettoriali, sapete se ci sono problemi a riguardo? (o più semplicemente ho detto una cavolata?? roftl )
-
Quote:
Originariamente inviato da
misterade
ok sembra funzionare, quindi devo per forza fare l'immagine più piccola di quello che mi aspetto e poi con le 9patch strecchare, quindi presumo che l'ideale sarebbe mettere delle immagini vettoriali, sapete se ci sono problemi a riguardo? (o più semplicemente ho detto una cavolata?? roftl )
guarda la cosa migliore che puoi fare, sia per capire come funziona, sia per "produrre" i tuoi 9patch regolarmente e' usare il programmino di google che si chiama draw9patch
e' un jar file e se non sbaglio e' incluso nell'SDK 2.1.
lo trovi comunque facilmente se lo googoli :)
in pratica lo lanci, carichi la tua immagine normale e il programma ti fa vedere il risutato delle stretchature che hai fatto in tempo reale..
da li ti fa anche vedere la questione del testo..
scusa se non sono stato troppo chiaro in italiano mi riesce sempre piu difficile :(
-
Si si ma uso già il tool di google, solo ke se uso una bitmap il risultato è bruttino, sarebbe preferibile un'immagine vettoriale, ma essendo il formato png non vettoriale non so proprio come fare :(