Autore Topic: Splash Screen progressBar e TextView con percentuale  (Letto 679 volte)

Offline fabio.dnaweb

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung 19100
  • Sistema operativo:
    Windows 7
Splash Screen progressBar e TextView con percentuale
« il: 07 Gennaio 2014, 11:28:45 CET »
0
Salve Ragazzi avrei una richiesta da farvi...
in un mio progetto ho una Activity di SplashScreen al cui interno eseguo un AsyncTask e nel metodo doInBackground faccio il parsing di alcuni file json popolando degli ArrayList...

praticamente vorrei visualizzare a video durante la procedura di caricamento una progress bar (e fin qui nessun problema) ed una TextView che mostri la percentuale di avanzamento.

Domanda devo agire io manualmente ad ogni step di avanzamento di ogni relativo popolamento ad inserire a mano il valore della percentuale?

esempio:

Codice: [Seleziona]
int step = 0;
totalStep = 10;

Commons.contentsList = model.parseJsonArray(json);
step = 1;

TextView.setText("Aggiornamento " + int(step / totalStep * 100) + " %" )

Oppure posso gestirlo diversamente?

Grazie in anticipo

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:Splash Screen progressBar e TextView con percentuale
« Risposta #1 il: 07 Gennaio 2014, 11:53:02 CET »
0
Comincio dalla fine:

Domanda devo agire io manualmente ad ogni step di avanzamento di ogni relativo popolamento ad inserire a mano il valore della percentuale?

Si, solo tu puoi quantificare l'avanzamento (conti il numero di file o la dimensione o qualsiasi altra cosa sia significativa).

in un mio progetto ho una Activity di SplashScreen al cui interno eseguo un AsyncTask e nel metodo doInBackground faccio il parsing di alcuni file json popolando degli ArrayList...
praticamente vorrei visualizzare a video durante la procedura di caricamento una progress bar (e fin qui nessun problema) ed una TextView che mostri la percentuale di avanzamento.

Quanto scritto sotto solo come mio commento personale:

In genere usando i termini "procedura di caricamento" e soprattutto "splashscreen" nella community di sviluppatori android, solitamente ti verrà detto che lo splashscreen non deve essere usato. Al solito, tra la posizione integralista e quella completamente permissiva, il giusto sta nel mezzo.

Leggi una tale eventuale critica in questo modo: Ci sono delle linee guida per lo sviluppo delle app android, linee guida che uniformano l'aspetto delle app per favorire l'utente e per evitare "pattern" che indispettiscono gli utenti stessi. Seguire le linee guida non deve essere un dogma, diciamo che se (per assurdo) le segui ciecamente, nel 95% dei casi fai la scelta giusta. Ci sono ovviamente dei casi speciali, in cui deviare dalle linee guida può convenire per migliorare ulteriormente l'esperienza utente.

Ora, lo splashscreen è tra le cose "assolutamente da non fare". In realtà non è che non devi segnalare all'utente che è in corso un qualche caricamento necessario al funzionamento dell'app. Viene consigliato di NON usare uno splashscreen perchè secondo le linee guida indispettisce l'utente con una sensazione di lentezza dell'app e mancato controllo da parte dell'utente. Un modo alternativo allo splashscreen è di approdare direttamente all'activity con arraylist vuota, mostrare un progressbar indefinito (che è già presente, ma invisibile, nell'action bar di sistema) e caricare in background dati nella arraylist. Insomma un "lazy load".

Io sono più orientato al permissivismo che all'integralismo riguardo le linee guida, per cui se hai ragione di ritenere che lo splashscreen metta l'utente più a suo agio, è giusto che rimanga.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline fabio.dnaweb

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung 19100
  • Sistema operativo:
    Windows 7
Re:Splash Screen progressBar e TextView con percentuale
« Risposta #2 il: 07 Gennaio 2014, 12:03:49 CET »
0
Grazie bradipao per la tua rapida risposta...
in verità sono a conoscenza che lo spalshScreen in android è un anti-pattern... ma purtroppo mi devo attenere a qualcuno che mi ha detto di volerlo così!!! e quindi la logica dell'integralismo non ha funzionato...

Grazie ugualmente  ;-)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Splash Screen progressBar e TextView con percentuale
« Risposta #3 il: 07 Gennaio 2014, 12:40:37 CET »
0
Grazie bradipao per la tua rapida risposta...
in verità sono a conoscenza che lo spalshScreen in android è un anti-pattern... ma purtroppo mi devo attenere a qualcuno che mi ha detto di volerlo così!!! e quindi la logica dell'integralismo non ha funzionato...

Grazie ugualmente  ;-)
Non sono un'estremista della linee guida, ma dietro ogni scelta c'è una logica e una motivazione.
Sono dell'opinione che il cliente va guidato in modo consapevole nelle scelte con un consulenza motivata.

Se un cliente mi chiede una macchina che frena con la frizione, e cambia con il freno , gli farei notare che sta chiedendo qualcosa fuori dalla logica.

Le linee guida di android, sono scritte in modo tale che un utente possa trovarsi a suo agio nell'utilizzare un'app senza dover imparare ad usarla. Detto questo, dietro la definizione di antipattern per lo splashscreen c'è una motivazione specifica.
Fonte, Roman Nurik, Google.


Chi usa un'app, la vuole usare. Non c'è nessun motivo per costringermi ad aspettare.

Sempre da Roman Nurik: https://medium.com/design-ux/f905a45b54dc
And as for the splash screen, well she didn’t open the app to stare at the logo, however pretty it may be. Every millisecond you’re not showing content is a millisecond that the user has to wait for something. We wait enough in our lives: we wait for the train, we wait on line at the grocery store, and we wait—often impatiently—for our significant others while they’re busy getting ready for a night out. We shouldn’t exacerbate the problem when the platforms we’re building for give us the necessary tools to avoid it.

Per finire, è stato considerato fra i 10 peggiori antipattern di android, al secondo posto.
(Fonte Google-AIDA, Android Design in Action)


Al cliente alcune scelte andrebbero motivate.
Se l'esigenza è brandizzare l'applicazione, le accortezze sono quella dei colori nella action bar, del logo...
Puoi trovare argomenti utili qui:
Your Branding | Android Developers

Ultima cosa.... la progress bar.
Se vogliamo una indicazione di buon senso anche qui, direbbe di non usare dialog, o altre cose che bloccano la funzionalità dell'utente.

« Ultima modifica: 07 Gennaio 2014, 12:42:33 CET da GabMarioPower »

Offline fabio.dnaweb

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung 19100
  • Sistema operativo:
    Windows 7
Re:Splash Screen progressBar e TextView con percentuale
« Risposta #4 il: 07 Gennaio 2014, 12:59:48 CET »
0
Grazie Gabriele ancora una volta,

vedrò di lavorarci un po su e trovare la giusta soluzione (per il cliente) di utilizzo... ;-)

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:Splash Screen progressBar e TextView con percentuale
« Risposta #5 il: 07 Gennaio 2014, 13:39:12 CET »
0
vedrò di lavorarci un po su e trovare la giusta soluzione (per il cliente) di utilizzo... ;-)

Se vuoi sostenere con il cliente l'idea di NON usare lo splashscreen, puoi spiegare che è uno degli elementi che statisticamente "abbassa" il gradimento delle app.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store