Autore Topic: cambiare background  (Letto 1691 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
cambiare background
« il: 17 Luglio 2012, 20:44:45 CEST »
0
Salve, devo cambiare lo sfondo della mia activity a runtime, o meglio, ho messo uno sfondo di default, ma l'utente dalle opzioni deve poter cambiare il tema, l'impostazione verrà poi salvata nelle sharedpreferences (appena capità come funziona il semplice tutorial)
Il problema è che gli sfondi io li ho messi in drawable.
Come faccio a modificare lo sfondo passanddogli il path come parametro?
(scrivo a mente perchè nn ho il compilatore a portata di mano)

LinearLayout layout = (Linearlayout...
layout.setBackgroundfrompath(@R.drawable.sfondored);


questa stringa @R.drawable.sfondored deve esser presa dalla shared preferences... ma se gli passo una stringa al "setbackgroundd" naturalmente mi da errore, perchè vuole un intero...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:cambiare background
« Risposta #1 il: 17 Luglio 2012, 22:53:19 CEST »
+1

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:cambiare background
« Risposta #2 il: 17 Luglio 2012, 23:23:08 CEST »
0
Uhm penso sia proprio quello che cercavo, grazie mille! (provo e poi metto risolto al topic)

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:cambiare background
« Risposta #3 il: 21 Luglio 2012, 21:10:57 CEST »
0
uhm ho cercato di usare il codice, ma mi da errore... (risorsa non trovata)


[/code]
Codice (Java): [Seleziona]
[size=1]public void onItemSelected(AdapterView<?> adapter, View v, [/size]
[size=1]                                int pos, long id)[/size]
[size=1]                        {[/size]
[size=1]                                lingua = (String) adapter.getItemAtPosition(pos);[/size]
[size=1]                                if(pos==0){[/size]
[size=1]                                        lingua = "it";[/size]
[size=1]                                }[/size]
[size=1]                                else if(pos==1){[/size]
[size=1]                                        lingua = "en";[/size]
[size=1]                                }else if(pos==2){[/size]
[size=1]                                        return;[/size]
[size=1]                                }[/size]
[size=1]                                [/size][size=x-small]savePreferencesData(v, lingua); //questo non so se funziona,devo ancora studiare le shared preferences[/size]
[size=x-small]//ridefinisco le 3 textview[/size]
[size=1]                                TextView opzioni = (TextView) findViewById(R.id.textView1);[/size]
[size=1]                                TextView linguat = (TextView) findViewById(R.id.textView3);[/size]
[size=1]                                TextView tema = (TextView) findViewById(R.id.textView2);[/size]
[size=1]                                [/size]
[size=1]                                int option = getResources().getIdentifier("opzioni"+lingua,"strings", getPackageName());[/size]
[size=1]                                opzioni.setText(option);[/size]
[size=1]                                int language = getResources().getIdentifier("lingua"+lingua,"strings", getPackageName());[/size]
[size=1]                                linguat.setText(language);[/size]
[size=1]                                int temas = getResources().getIdentifier("tema"+lingua,"strings", getPackageName());[/size]
[size=1]                                tema.setText(temas);[/size]
[size=1]                        }[/size][size=x-small]


il dubbio è sull'ultima parte...
nella mia ignoranza, ho una serie di stringhe alle quali cambia la parte finale (relativa alla lingua)
quindi per prender la risorsa gli ho dato, "nome della stringa" , "file dove si trova", "nome package"


è corretto così?

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:cambiare background
« Risposta #4 il: 21 Luglio 2012, 21:11:26 CEST »
0
non chiedetemi perchè ha aggiunto tutti quei "size = 1 "

edit, ho provato a metter "values" al posto di string (dato che per le immagini mette drawable) ma niente da fare, risorsa 0x0 non trovata (nel SetText)
« Ultima modifica: 21 Luglio 2012, 21:16:05 CEST da gabric »

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:cambiare background
« Risposta #5 il: 22 Luglio 2012, 13:14:43 CEST »
0
nessuno?
ho visto che on questo codice non "punta" nemmeno alle immagini.. ma per le immagini mi da un img nera, mentre per il testo, un nullPointException

Offline mdb

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +7
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    Prometheo Apps
  • Sistema operativo:
    Windows
Re:cambiare background
« Risposta #6 il: 22 Luglio 2012, 13:56:49 CEST »
+1
non chiedetemi perchè ha aggiunto tutti quei "size = 1 "

edit, ho provato a metter "values" al posto di string (dato che per le immagini mette drawable) ma niente da fare, risorsa 0x0 non trovata (nel SetText)

Hai provato ad usare "string" invece di "strings"?
Le risorse vengono identificate con "R.string.NOME" per cui  presumo che devi usare "string" come tipo, esempio:
int option = getResources().getIdentifier("opzioni"+lingua,"string", getPackageName());
App per Android:
Almanacco: Giorno per giorno, eventi, notizie, giochi e curiosità, da leggere e condividere
Proverbi Napoletani: Più di 50 proverbi da ascoltare in dialetto napoletano. Due sottofondi musicali.

Offline gabric

  • Utente senior
  • ****
  • Post: 614
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:cambiare background
« Risposta #7 il: 22 Luglio 2012, 15:05:59 CEST »
0
ok risolto, grazie mille!
dovevo metter "string"  come tipo (io avevo provato con la S maiuscola)
per le immagini avevo sbagliato perchè è casesensitive