Autore Topic: Temi Android  (Letto 733 volte)

Offline phaedra

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S 2.2.1
  • Sistema operativo:
    Windows 7
Temi Android
« il: 14 Maggio 2011, 14:56:57 CEST »
0
Salve a tutti, vi scrivo perchè ho un problema che mi sta tormentando e googlando in giro sembra non si possa risolvere (a meno da quanto ho capito, magari ho preso una cantonata?  :-[). Fondamentalmente io sono uno sviluppatore web, e da pochi mesi mi sono avvicinato allo sviluppo sulla piattaforma android per motivi di lavoro.

La mia necessità è di modificare l'apparenza del mio applicativo android in base al tema scelto dall'utente, da una maschera di configurazioni. Il problema sta nel fatto di non poter, a differenza del web, avere diversi fogli di stile da intercambiare, in modo da assegnare immagini diverse per tema. Ovvero non posso cambiare, a quanto sembra, l'immagine di una ImageView in base al tema.

Ho provato a usare almeno la proprietà windowbackground per cambiare lo sfondo, ma poi non riesco ad adattarla come faccio con le textview usando la proprietà scaleType. Ho provato ad usare un BitmapDrawable, ma con la proprietà gravity non riesco ad ottenere un ridimensionamento proporzionale.

Forse ho fatto un pò di confusione cercando di mettere tutto in poche righe, ma qualcuno mi potrebbe fare un pò di chiarezza al riguardo?

Soprattutto sul cambio di immagini in base al tema, senza dover estendere view.

Grazie, Phaedra

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Temi Android
« Risposta #1 il: 15 Maggio 2011, 13:55:19 CEST »
+1
Ciao phaedra,
se riesci a definire tutte le caratteristiche dei tuoi temi all'interno di styles.xml puoi facilmente switchare tema utilizzando il metodo setTheme(R.style.nome_tema);.
Devi solo fare attenzione a lanciarlo PRIMA di super.onCreate(savedInstanceState); e  setContentView(R.layout.add_lesson);.

Es:

Codice (Java): [Seleziona]
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.tema_scuro);
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_lesson);
}

Utilizzando quel metodo puoi andare a leggere il tema selezionato dall'utente dalle shared preferences e applicarlo su ogni activity (io faccio così su Libretto Universitario).
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !