Autore Topic: [facile] Visualizzare una sfumatura più omogenea  (Letto 3192 volte)

vincenzodicicco

  • Visitatore
[facile] Visualizzare una sfumatura più omogenea
« il: 03 Settembre 2010, 01:48:53 CEST »
+2
Livello di difficoltà: facile
Versione SDK utilizzata: 1.1|1.5|1.6|2.0|2.1
Link al file compresso del progetto eclipse: non necessario

Salve a tutti, un problema già discusso su questo forum è come android gestisce i gradienti.Spesso inserendo un'immagine con sfumature si ottengono risultati non desiderati talmente vistosi che l'unica strada è quella di pensare ad un'altra grafica.Bene, ecco qui un due piccole soluzioni che porteranno davvero miracoli alle vostre sfumature :)

Soluzione 1

Pro:

Contro:
  • Pesante su i vecchi terminali (Dream, Magic, etc)

La prima, segnalata da bradipo ed attuata da Qlimax si avvale di due piccole righe di codice, che permetteranno di utilizzare il formato pixel RGBA_8888 molto più preciso di quello standard di android, il codice in questione è:
Codice (Java): [Seleziona]
getWindow().setFormat(PixelFormat.RGBA_8888);   //Imposta il PixlFormat a RGBA_8888
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);  //Grazie questa riga, il codice diviene compatibile con i vecchi terminali

Soluzione 2

Pro:
  • Non appesantisce minimamente

Contro:

Il secondo trucchetto consiste nel inserire un po di rumore alla vostra immagine, posto qui i passaggi da utilizzare con Photoshop e Gimp, ma il concetto è adattabile hai più diffusi software di grafica.
Trovata la propria immagine, seguire i seguenti passi:
GIMP:  Filtri - Disturbo - Diffusione
PHOTOSHOP: Filtro - Distrurbo - Aggiungi distrurbo



(Il valore 1 è soggetto a variazioni in base alle vostre esigenze, ma ricordarsi di non esagerare troppo, riguardo Gimp i valori possono essere molto più alti :-) )

Una volta aggiunto il disturbo, basta salvare l'immagine ed utilizzarla, ecco un confronto(prima e dopo):


Bibliografia:
Purtroppo non ritrovo il link  :-(
    « Ultima modifica: 14 Settembre 2010, 18:01:43 CEST da JD »

    Offline JD

    • Amministratore
    • Utente storico
    • *****
    • Post: 1600
    • Respect: +232
      • leinardi
      • Mostra profilo
    • Dispositivo Android:
      LG Nexus 5
    • Sistema operativo:
      L'ultima Ubuntu
    Re:Visualizzare una sfumatura più omogena
    « Risposta #1 il: 03 Settembre 2010, 09:55:43 CEST »
    0
    Grazie Vincenzo, certo che c'è una bella differenza!
    È 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 !

    Offline 7h38ugg3r

    • Moderatore globale
    • Utente storico
    • *****
    • Post: 1200
    • Respect: +133
      • riccardofischetti
      • th38ugg3r
      • @7h38ugg3r
      • Mostra profilo
    • Dispositivo Android:
      Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
    • Play Store ID:
      Riccardo Fischetti
    • Sistema operativo:
      OS X Lion / Linux Mint 11 (Katya)
    Re:Visualizzare una sfumatura più omogena
    « Risposta #2 il: 03 Settembre 2010, 12:58:31 CEST »
    0
    Mi chiedo una cosa.
    Questo problema di gradienti, di solito, si ottiene quando si riduce la profondità colore di un'immagine (es. da 24 a 16 bit colore), per cui i passaggi tra le varie tonalità diventano più marcate.
    E' Android a scalare le immagini che si inseriscono, oppure dipende dalla profondità impostata sull'emulatore e/o dal display del telefonino che, nel caso del nexus e di htc desire è, per esempio di (credo) 65536 colori?
    7h38ugg3r<=>thebugger
    Non conosci Java? Allora sei nel posto sbagliato!

    http://www.androidpatterns.com/

    vincenzodicicco

    • Visitatore
    Re:Visualizzare una sfumatura più omogena
    « Risposta #3 il: 03 Settembre 2010, 14:14:44 CEST »
    0
    7h38ugg3r io non penso che android scala le immagini, questo perché la cosa buffa è che se tu metti una foto non un immagine fatta al PC la sfumatura si vede benissimo, e l'unica differenza che può esserci tra una foto ed un immagine cerata al computer non può che essere che la nitidezza.Difatti se fai un zoom profondo ad una foto ti accorgi che i pixel che la compongono sono molto disordinati quindi possiedono un rumore (causato dalla lente ecc). Mentre un'immagine fatta al PC di una sfumatura, beh li è molto più precisa creata matematicamente.Quindi ovviamente a mio avviso sono più che sicuro che è un problema di disegno di immagine; oppure è come dici tu  :-), magari un piccolo bug.Parola agli esperti  :D

    Offline bradipao

    • Moderatore globale
    • Utente storico
    • *****
    • Post: 4043
    • keep it simple
    • Respect: +567
      • Github
      • Google+
      • bradipao
      • Mostra profilo
    • Dispositivo Android:
      Nexus 5
    • Play Store ID:
      Bradipao
    • Sistema operativo:
      W7
    Re:Visualizzare una sfumatura più omogena
    « Risposta #4 il: 03 Settembre 2010, 14:31:17 CEST »
    +1
    Mi chiedo una cosa.
    Questo problema di gradienti, di solito, si ottiene quando si riduce la profondità colore di un'immagine (es. da 24 a 16 bit colore), per cui i passaggi tra le varie tonalità diventano più marcate.
    E' Android a scalare le immagini che si inseriscono, oppure dipende dalla profondità impostata sull'emulatore e/o dal display del telefonino che, nel caso del nexus e di htc desire è, per esempio di (credo) 65536 colori?

    Io riguardo a questo problema avevo letto che si presenta perchè Android di default usa il PixelFormat RGB_565 (16 bit). Dicevano che sui vecchi device si può mitigare attivando il dithering con getWindow().addFlags(WindowManager.LayoutParams.FLAG-DITHER), mentre sui nuovi è anche possibile passare al PixelFormat ARGB_8888.

    Poichè al tempo non avevo terminali fisici su cui provare, lasciai perdere, però sarebbero soluzioni da provare.
    NON rispondo a domande nei messaggi privati
    Bradipao @ Play Store

    Offline Qlimax

    • Moderatore globale
    • Utente senior
    • *****
    • Post: 757
    • Respect: +202
      • Google+
      • _Qlimax
      • Mostra profilo
      • www.egsolutions.ch
    • Dispositivo Android:
      Galaxy Nexus - Nexus One - Wildfire - Magic
    • Play Store ID:
      egsolutions.ch
    • Sistema operativo:
      Ubuntu 12.04, Windows 7
    Re:Visualizzare una sfumatura più omogena
    « Risposta #5 il: 03 Settembre 2010, 14:33:59 CEST »
    +1
    guarda (come suggerisce bradipao) è possibile rimediare a questo problema aggiungendo questa linea di codice all'activity:

    Codice (Java): [Seleziona]
    getWindow().setFormat(PixelFormat.RGBA_8888);
    e per essere compatibile anche con i vecchi terminali aggiungi anche questa:

    Codice (Java): [Seleziona]
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
    « Ultima modifica: 03 Settembre 2010, 14:37:41 CEST da Qlimax »

    Offline JD

    • Amministratore
    • Utente storico
    • *****
    • Post: 1600
    • Respect: +232
      • leinardi
      • Mostra profilo
    • Dispositivo Android:
      LG Nexus 5
    • Sistema operativo:
      L'ultima Ubuntu
    Re:Visualizzare una sfumatura più omogena
    « Risposta #6 il: 03 Settembre 2010, 14:37:15 CEST »
    0
    A questo punto si potrebbe modificare il tutorial inserendo le due soluzioni: quella che prevede l'aggiunta diretta del rumore all'immagine e quella che sfrutta il PixelFormat.RGBA_8888.
    Che ne dici Vincenzo?
    È 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 !

    vincenzodicicco

    • Visitatore
    Re:Visualizzare una sfumatura più omogena
    « Risposta #7 il: 03 Settembre 2010, 14:40:02 CEST »
    0
    Certo JD, faccio io o fai tu?  :D ovviamente inseriamo bradipo e Qlimax come "scopritori"  :-)

    Offline JD

    • Amministratore
    • Utente storico
    • *****
    • Post: 1600
    • Respect: +232
      • leinardi
      • Mostra profilo
    • Dispositivo Android:
      LG Nexus 5
    • Sistema operativo:
      L'ultima Ubuntu
    Re:Visualizzare una sfumatura più omogena
    « Risposta #8 il: 03 Settembre 2010, 14:41:15 CEST »
    0
    Se ti va fai pure tu ;)
    È 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 !

    Offline Qlimax

    • Moderatore globale
    • Utente senior
    • *****
    • Post: 757
    • Respect: +202
      • Google+
      • _Qlimax
      • Mostra profilo
      • www.egsolutions.ch
    • Dispositivo Android:
      Galaxy Nexus - Nexus One - Wildfire - Magic
    • Play Store ID:
      egsolutions.ch
    • Sistema operativo:
      Ubuntu 12.04, Windows 7
    Re:Visualizzare una sfumatura più omogena
    « Risposta #9 il: 03 Settembre 2010, 14:46:09 CEST »
    0
    Comunque, il tuo metodo è sicuramente valido, in quanto settando questi parametri le views vengono "appesantite"...

    vorrei inoltre precisare, che questo metodo(rgba_8888+dither) funziona anche quando si presenta il problema usando i gradient di sistema.
    « Ultima modifica: 03 Settembre 2010, 14:47:49 CEST da Qlimax »

    vincenzodicicco

    • Visitatore
    Re:Visualizzare una sfumatura più omogena
    « Risposta #10 il: 03 Settembre 2010, 14:49:21 CEST »
    0
    Ho modificato il post, segnalate se qualcosa non è corretto  :D Qlimax tu quale utilizzeresti?

    Offline JD

    • Amministratore
    • Utente storico
    • *****
    • Post: 1600
    • Respect: +232
      • leinardi
      • Mostra profilo
    • Dispositivo Android:
      LG Nexus 5
    • Sistema operativo:
      L'ultima Ubuntu
    Re:Visualizzare una sfumatura più omogena
    « Risposta #11 il: 03 Settembre 2010, 15:13:39 CEST »
    0
    Ho sistemato un poco il tutorial evidenziando pro e contro delle due soluzioni.

    Sarebbe carino aggiungere anche le istruzioni della Soluzione 2 utilizzando The Gimp (che, essendo free, chiunque può liberamente scaricarsi da internet), solo che non mi è ben chiaro quale dei tanti filtri Disturbo è meglio utilizzare.
    Ora non riesco a testare personalmente, se ti va e hai tempo farlo tu? :P
    È 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 !

    vincenzodicicco

    • Visitatore
    Re:Visualizzare una sfumatura più omogena
    « Risposta #12 il: 03 Settembre 2010, 20:29:55 CEST »
    0
    Va bene JD, scaricherò Gimp e vedo cosa riesco a combinare  :-)

    Offline Miciux

    • Nuovo arrivato
    • *
    • Post: 15
    • Respect: +2
      • Miciux
      • Mostra profilo
      • Miciux's Weblog
    • Dispositivo Android:
      Acer Liquid E
    • Sistema operativo:
      Ubuntu 10.04, Windows 7
    Re: [facile] Visualizzare una sfumatura più omogena
    « Risposta #13 il: 03 Settembre 2010, 20:37:37 CEST »
    0
    Di solito uso la sfocatura gaussiana 2x2

    Sent from my Liquid
    Visita il mio blog: Miciux's Weblog
    Ma il codice sorgente per una ricetta?

    vincenzodicicco

    • Visitatore
    Re:[facile] Visualizzare una sfumatura più omogena
    « Risposta #14 il: 04 Settembre 2010, 15:55:12 CEST »
    +1
    Aggiunto i passi da effettuare con Gimp, anche se non mi sono trovato tanto bene e non ho avuto risultati eccellenti, ad ogni modo bisogna trovare il valore giusto  :-)